Skip to content

Commit

Permalink
Merge pull request #6415 from Thisara-Welmilla/fix-db-queries
Browse files Browse the repository at this point in the history
Fix SELECT db queries for custom defined authenticators.
  • Loading branch information
Thisara-Welmilla authored Feb 3, 2025
2 parents 47163a8 + 4036ef9 commit 43d5b29
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,10 @@ public static class Query {
public static final String UPDATE_AUTHENTICATOR_SQL = "UPDATE IDP_AUTHENTICATOR SET IS_ENABLED = " +
":IS_ENABLED;, DISPLAY_NAME = :DISPLAY_NAME;, IMAGE_URL = :IMAGE_URL;, DESCRIPTION = :DESCRIPTION; " +
"WHERE NAME = :NAME; AND TENANT_ID = :TENANT_ID;";
public static final String GET_AUTHENTICATOR_SQL = "SELECT * FROM IDP_AUTHENTICATOR " +
"WHERE DEFINED_BY = :DEFINED_BY; AND NAME = :NAME; AND TENANT_ID = :TENANT_ID;";
public static final String GET_USER_DEFINED_LOCAL_AUTHENTICATOR_SQL = "SELECT * FROM IDP_AUTHENTICATOR " +
"WHERE DEFINED_BY = :DEFINED_BY; AND NAME = :NAME; AND TENANT_ID = :TENANT_ID;" +
"AND IDP_ID IN (SELECT ID FROM IDP WHERE IDP.NAME = :IDP_NAME; " +
"AND IDP.TENANT_ID = :TENANT_ID;)";
public static final String IS_AUTHENTICATOR_EXISTS_BY_NAME_SQL = "SELECT ID FROM IDP_AUTHENTICATOR " +
"WHERE NAME = :NAME; AND TENANT_ID = :TENANT_ID;";
public static final String GET_ALL_USER_DEFINED_AUTHENTICATOR_SQL =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ private UserDefinedLocalAuthenticatorConfig getUserDefinedLocalAuthenticatorByNa

NamedJdbcTemplate jdbcTemplate = new NamedJdbcTemplate(IdentityDatabaseUtil.getDataSource());
AuthenticatorConfigDaoModel configDaoModel = jdbcTemplate.withTransaction(template ->
template.fetchSingleRecord(Query.GET_AUTHENTICATOR_SQL,
template.fetchSingleRecord(Query.GET_USER_DEFINED_LOCAL_AUTHENTICATOR_SQL,
(resultSet, rowNumber) -> {
UserDefinedLocalAuthenticatorConfig config = getLocalAuthenticatorConfigBasedOnType(
resultSet.getString(Column.AUTHENTICATION_TYPE));
Expand All @@ -216,6 +216,7 @@ private UserDefinedLocalAuthenticatorConfig getUserDefinedLocalAuthenticatorByNa
statement.setString(Column.NAME, authenticatorConfigName);
statement.setInt(Column.TENANT_ID, tenantId);
statement.setString(Column.DEFINED_BY, DefinedByType.USER.toString());
statement.setString(Column.IDP_NAME, LOCAL_IDP_NAME);
}));

if (configDaoModel == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6057,6 +6057,8 @@ public List<FederatedAuthenticatorConfig> getAllUserDefinedFederatedAuthenticato
PreparedStatement prepStmt = connection.prepareStatement(
IdPManagementConstants.SQLQueries.GET_ALL_USER_DEFINED_FEDERATED_AUTHENTICATORS)) {
prepStmt.setInt(1, tenantId);
prepStmt.setString(2, "LOCAL");
prepStmt.setInt(3, tenantId);
try (ResultSet resultSet = prepStmt.executeQuery()) {
while (resultSet.next()) {
UserDefinedFederatedAuthenticatorConfig federatedAuthenticatorConfig =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -609,7 +609,8 @@ public static class SQLQueries {
"IDP.UUID AS IDP_ID FROM IDP_GROUP LEFT JOIN IDP ON IDP.ID = IDP_GROUP.IDP_ID WHERE " +
"IDP_GROUP.TENANT_ID = ? AND IDP_GROUP.UUID IN (" + IDP_GROUP_LIST_PLACEHOLDER + ")";
public static final String GET_ALL_USER_DEFINED_FEDERATED_AUTHENTICATORS =
"SELECT * FROM IDP_AUTHENTICATOR WHERE TENANT_ID = ? AND DEFINED_BY = 'USER'";
"SELECT * FROM IDP_AUTHENTICATOR WHERE TENANT_ID = ? AND DEFINED_BY = 'USER' AND IDP_ID IN " +
"(SELECT ID FROM IDP WHERE IDP.NAME != ? AND IDP.TENANT_ID = ?)";
}

public static class WarningMessage {
Expand Down

0 comments on commit 43d5b29

Please sign in to comment.