diff --git a/connections/jpa-liquibase/src/main/java/org/keycloak/connections/jpa/updater/liquibase/custom/JpaUpdate1_2_0_CR1.java b/connections/jpa-liquibase/src/main/java/org/keycloak/connections/jpa/updater/liquibase/custom/JpaUpdate1_2_0_CR1.java new file mode 100644 index 0000000000..5c8a2eb9ad --- /dev/null +++ b/connections/jpa-liquibase/src/main/java/org/keycloak/connections/jpa/updater/liquibase/custom/JpaUpdate1_2_0_CR1.java @@ -0,0 +1,50 @@ +package org.keycloak.connections.jpa.updater.liquibase.custom; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +import liquibase.exception.CustomChangeException; +import liquibase.statement.core.InsertStatement; +import liquibase.structure.core.Table; + +/** + * @author Marek Posolda + */ +public class JpaUpdate1_2_0_CR1 extends CustomKeycloakTask { + + @Override + protected void generateStatementsImpl() throws CustomChangeException { + String realmClientTableName = database.correctObjectName("REALM_CLIENT", Table.class); + + try { + PreparedStatement statement = jdbcConnection.prepareStatement("select CLIENT.REALM_ID, CLIENT.ID CLIENT_ID from CLIENT where CLIENT.CONSENT_REQUIRED = true"); + try { + ResultSet resultSet = statement.executeQuery(); + try { + while (resultSet.next()) { + String realmId = resultSet.getString("REALM_ID"); + String oauthClientId = resultSet.getString("CLIENT_ID"); + + InsertStatement realmClientInsert = new InsertStatement(null, null, realmClientTableName) + .addColumnValue("REALM_ID", realmId) + .addColumnValue("CLIENT_ID", oauthClientId); + statements.add(realmClientInsert); + } + } finally { + resultSet.close(); + } + } finally { + statement.close(); + } + + confirmationMessage.append("Inserted " + statements.size() + " OAuth Clients to REALM_CLIENT table"); + } catch (Exception e) { + throw new CustomChangeException(getTaskId() + ": Exception when updating data from previous version", e); + } + } + + @Override + protected String getTaskId() { + return "Update 1.2.0.CR1"; + } +} diff --git a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.RC1.xml b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.RC1.xml index 5eb84f9216..9158ab8c36 100755 --- a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.RC1.xml +++ b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.RC1.xml @@ -139,5 +139,7 @@ + +