keycloak
公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
org.keycloak.connections.jpa.updater.liquibase.custom.JpaUpdate1_2_0_CR1 クラス
org.keycloak.connections.jpa.updater.liquibase.custom.JpaUpdate1_2_0_CR1 の継承関係図
Inheritance graph
org.keycloak.connections.jpa.updater.liquibase.custom.JpaUpdate1_2_0_CR1 連携図
Collaboration graph

公開メンバ関数

ValidationErrors validate (Database database)
 
void setFileOpener (ResourceAccessor resourceAccessor)
 
String getConfirmationMessage ()
 
void setUp () throws SetupException
 
SqlStatement [] generateStatements (Database database) throws CustomChangeException
 

限定公開メンバ関数

void generateStatementsImpl () throws CustomChangeException
 
String getTaskId ()
 
boolean isApplicable () throws CustomChangeException
 
String getTableName (String tableName)
 

限定公開変数類

KeycloakSession kcSession
 
Database database
 
JdbcConnection jdbcConnection
 
Connection connection
 
StringBuilder confirmationMessage = new StringBuilder()
 
List< SqlStatement > statements = new ArrayList<SqlStatement>()
 

詳解

著者
Marek Posolda

関数詳解

◆ generateStatements()

SqlStatement [] org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.generateStatements ( Database  database) throws CustomChangeException
inlineinherited
91  {
92  this.database = database;
93  jdbcConnection = (JdbcConnection) database.getConnection();
94  connection = jdbcConnection.getWrappedConnection();
95 
96  if (isApplicable()) {
97  confirmationMessage.append(getTaskId() + ": ");
99  } else {
100  confirmationMessage.append(getTaskId() + ": no update applicable for this task");
101  }
102 
103  return statements.toArray(new SqlStatement[statements.size()]);
104  }
JdbcConnection jdbcConnection
Definition: CustomKeycloakTask.java:52
List< SqlStatement > statements
Definition: CustomKeycloakTask.java:55
boolean isApplicable()
Definition: CustomKeycloakTask.java:106
Database database
Definition: CustomKeycloakTask.java:51
Connection connection
Definition: CustomKeycloakTask.java:53
StringBuilder confirmationMessage
Definition: CustomKeycloakTask.java:54

◆ generateStatementsImpl()

void org.keycloak.connections.jpa.updater.liquibase.custom.JpaUpdate1_2_0_CR1.generateStatementsImpl ( ) throws CustomChangeException
inlineprotected
34  {
35  String realmClientTableName = database.correctObjectName("REALM_CLIENT", Table.class);
36 
37  try {
38  String trueValue = DataTypeFactory.getInstance().getTrueBooleanValue(database);
39  PreparedStatement statement = jdbcConnection.prepareStatement("select CLIENT.REALM_ID, CLIENT.ID CLIENT_ID from " + getTableName("CLIENT") + " CLIENT where CLIENT.CONSENT_REQUIRED = " + trueValue);
40 
41  try {
42  ResultSet resultSet = statement.executeQuery();
43  try {
44  while (resultSet.next()) {
45  String realmId = resultSet.getString("REALM_ID");
46  String oauthClientId = resultSet.getString("CLIENT_ID");
47 
48  InsertStatement realmClientInsert = new InsertStatement(null, null, realmClientTableName)
49  .addColumnValue("REALM_ID", realmId)
50  .addColumnValue("CLIENT_ID", oauthClientId);
51  statements.add(realmClientInsert);
52  }
53  } finally {
54  resultSet.close();
55  }
56  } finally {
57  statement.close();
58  }
59 
60  confirmationMessage.append("Inserted " + statements.size() + " OAuth Clients to REALM_CLIENT table");
61  } catch (Exception e) {
62  throw new CustomChangeException(getTaskId() + ": Exception when updating data from previous version", e);
63  }
64  }
JdbcConnection jdbcConnection
Definition: CustomKeycloakTask.java:52
String getTableName(String tableName)
Definition: CustomKeycloakTask.java:132
List< SqlStatement > statements
Definition: CustomKeycloakTask.java:55
String getTaskId()
Definition: JpaUpdate1_2_0_CR1.java:67
Database database
Definition: CustomKeycloakTask.java:51
StringBuilder confirmationMessage
Definition: CustomKeycloakTask.java:54

◆ getConfirmationMessage()

String org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.getConfirmationMessage ( )
inlineinherited
68  {
69  return confirmationMessage.toString();
70  }
StringBuilder confirmationMessage
Definition: CustomKeycloakTask.java:54

◆ getTableName()

String org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.getTableName ( String  tableName)
inlineprotectedinherited
132  {
133  String correctedSchemaName = database.escapeObjectName(database.getDefaultSchemaName(), Schema.class);
134  return LiquibaseJpaUpdaterProvider.getTable(tableName, correctedSchemaName);
135  }
Database database
Definition: CustomKeycloakTask.java:51

◆ getTaskId()

String org.keycloak.connections.jpa.updater.liquibase.custom.JpaUpdate1_2_0_CR1.getTaskId ( )
inlineprotected
67  {
68  return "Update 1.2.0.CR1";
69  }

◆ isApplicable()

boolean org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.isApplicable ( ) throws CustomChangeException
inlineprotectedinherited
106  {
107  try {
108  String correctedTableName = database.correctObjectName("REALM", Table.class);
109  if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) {
110  ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + getTableName(correctedTableName));
111  try {
112  return (resultSet.next());
113  } finally {
114  resultSet.close();
115  }
116  } else {
117  return false;
118  }
119  } catch (Exception e) {
120  throw new CustomChangeException("Failed to check database availability", e);
121  }
122  }
String getTableName(String tableName)
Definition: CustomKeycloakTask.java:132
Database database
Definition: CustomKeycloakTask.java:51
Connection connection
Definition: CustomKeycloakTask.java:53

◆ setFileOpener()

void org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.setFileOpener ( ResourceAccessor  resourceAccessor)
inlineinherited
63  {
64 
65  }

◆ setUp()

void org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.setUp ( ) throws SetupException
inlineinherited
73  {
74  this.kcSession = ThreadLocalSessionContext.getCurrentSession();
75 
76  if (this.kcSession == null) {
77  // Probably running Liquibase from maven plugin. Try to create kcSession programmatically
78  logger.info("No KeycloakSession provided in ThreadLocal. Initializing KeycloakSessionFactory");
79 
80  try {
81  DefaultKeycloakSessionFactory factory = new DefaultKeycloakSessionFactory();
82  factory.init();
83  this.kcSession = factory.create();
84  } catch (Exception e) {
85  throw new SetupException("Exception when initializing factory", e);
86  }
87  }
88  }
KeycloakSession kcSession
Definition: CustomKeycloakTask.java:49
final Logger logger
Definition: CustomKeycloakTask.java:47

◆ validate()

ValidationErrors org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.validate ( Database  database)
inlineinherited
58  {
59  return null;
60  }

メンバ詳解

◆ confirmationMessage

StringBuilder org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.confirmationMessage = new StringBuilder()
protectedinherited

◆ connection

Connection org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.connection
protectedinherited

◆ database

Database org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.database
protectedinherited

◆ jdbcConnection

JdbcConnection org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.jdbcConnection
protectedinherited

◆ kcSession

KeycloakSession org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.kcSession
protectedinherited

◆ statements

List<SqlStatement> org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.statements = new ArrayList<SqlStatement>()
protectedinherited

このクラス詳解は次のファイルから抽出されました: