keycloak
公開メンバ関数 | 静的公開変数類 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.migration.migrators.MigrateTo2_1_0 クラス
org.keycloak.migration.migrators.MigrateTo2_1_0 の継承関係図
Inheritance graph
org.keycloak.migration.migrators.MigrateTo2_1_0 連携図
Collaboration graph

公開メンバ関数

ModelVersion getVersion ()
 
void migrate (KeycloakSession session)
 
void migrateImport (KeycloakSession session, RealmModel realm, RealmRepresentation rep, boolean skipUserDependent)
 

静的公開変数類

static final ModelVersion VERSION = new ModelVersion("2.1.0")
 

非公開メンバ関数

void migrateDefaultRequiredAction (RealmModel realm)
 
void migrateRolePolicies (RealmModel realm, KeycloakSession session)
 

詳解

著者
Stan Silvert ssilv.nosp@m.ert@.nosp@m.redha.nosp@m.t.co.nosp@m.m (C) 2016 Red Hat Inc.

関数詳解

◆ getVersion()

ModelVersion org.keycloak.migration.migrators.MigrateTo2_1_0.getVersion ( )
inline

org.keycloak.migration.migrators.Migrationを実装しています。

45  {
46  return VERSION;
47  }
static final ModelVersion VERSION
Definition: MigrateTo2_1_0.java:43

◆ migrate()

void org.keycloak.migration.migrators.MigrateTo2_1_0.migrate ( KeycloakSession  session)
inline

org.keycloak.migration.migrators.Migrationを実装しています。

49  {
50  for (RealmModel realm : session.realms().getRealms()) {
52  migrateRolePolicies(realm, session);
53  }
54  }
void migrateRolePolicies(RealmModel realm, KeycloakSession session)
Definition: MigrateTo2_1_0.java:73
void migrateDefaultRequiredAction(RealmModel realm)
Definition: MigrateTo2_1_0.java:64

◆ migrateDefaultRequiredAction()

void org.keycloak.migration.migrators.MigrateTo2_1_0.migrateDefaultRequiredAction ( RealmModel  realm)
inlineprivate
64  {
65  RequiredActionProviderModel otpAction = realm.getRequiredActionProviderByAlias(UserModel.RequiredAction.CONFIGURE_TOTP.name());
66 
67  MigrationUtils.updateOTPRequiredAction(otpAction);
68 
69  realm.updateRequiredActionProvider(otpAction);
70  }

◆ migrateImport()

void org.keycloak.migration.migrators.MigrateTo2_1_0.migrateImport ( KeycloakSession  session,
RealmModel  realm,
RealmRepresentation  rep,
boolean  skipUserDependent 
)
inline

org.keycloak.migration.migrators.Migrationを実装しています。

57  {
59  migrateRolePolicies(realm, session);
60 
61  }
void migrateRolePolicies(RealmModel realm, KeycloakSession session)
Definition: MigrateTo2_1_0.java:73
void migrateDefaultRequiredAction(RealmModel realm)
Definition: MigrateTo2_1_0.java:64

◆ migrateRolePolicies()

void org.keycloak.migration.migrators.MigrateTo2_1_0.migrateRolePolicies ( RealmModel  realm,
KeycloakSession  session 
)
inlineprivate
73  {
74  AuthorizationProvider authorizationProvider = session.getProvider(AuthorizationProvider.class);
75  StoreFactory storeFactory = authorizationProvider.getStoreFactory();
76  PolicyStore policyStore = storeFactory.getPolicyStore();
77  realm.getClients().forEach(clientModel -> {
78  ResourceServer resourceServer = storeFactory.getResourceServerStore().findById(clientModel.getId());
79 
80  if (resourceServer != null) {
81  policyStore.findByType("role", resourceServer.getId()).forEach(policy -> {
82  Map<String, String> config = new HashMap(policy.getConfig());
83  String roles = config.get("roles");
84  List roleConfig;
85 
86  try {
87  roleConfig = JsonSerialization.readValue(roles, List.class);
88  } catch (Exception e) {
89  throw new RuntimeException("Malformed configuration for role policy [" + policy.getName() + "].", e);
90  }
91 
92  if (!roleConfig.isEmpty() && roleConfig.get(0) instanceof String) {
93  try {
94  config.put("roles", JsonSerialization.writeValueAsString(roleConfig.stream().map(new Function<String, Map>() {
95  @Override
96  public Map apply(String roleId) {
97  Map updated = new HashMap();
98 
99  updated.put("id", roleId);
100 
101  return updated;
102  }
103  }).collect(Collectors.toList())));
104  policy.setConfig(config);
105  } catch (Exception e) {
106  throw new RuntimeException("Failed to migrate role policy [" + policy.getName() + "].", e);
107  }
108  }
109  });
110  }
111  });
112  }

メンバ詳解

◆ VERSION

final ModelVersion org.keycloak.migration.migrators.MigrateTo2_1_0.VERSION = new ModelVersion("2.1.0")
static

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