keycloak-service
公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.services.managers.RealmManager クラス
org.keycloak.services.managers.RealmManager 連携図
Collaboration graph

公開メンバ関数

String getContextPath ()
 
void setContextPath (String contextPath)
 
 RealmManager (KeycloakSession session)
 
KeycloakSession getSession ()
 
RealmModel getKeycloakAdminstrationRealm ()
 
RealmModel getRealm (String id)
 
RealmModel getRealmByName (String name)
 
RealmModel createRealm (String name)
 
RealmModel createRealm (String id, String name)
 
void setupAdminCli (RealmModel realm)
 
void addQueryCompositeRoles (ClientModel realmAccess)
 
String getRealmAdminClientId (RealmModel realm)
 
String getRealmAdminClientId (RealmRepresentation realm)
 
boolean removeRealm (RealmModel realm)
 
void updateRealmEventsConfig (RealmEventsConfigRepresentation rep, RealmModel realm)
 
void setupMasterAdminManagement (RealmModel realm)
 
void setupImpersonationService (RealmModel realm)
 
void setupBrokerService (RealmModel realm)
 
RealmModel importRealm (RealmRepresentation rep)
 
RealmModel importRealm (RealmRepresentation rep, boolean skipUserDependent)
 
List< UserModel > searchUsers (String searchString, RealmModel realmModel)
 

限定公開メンバ関数

void setupAuthenticationFlows (RealmModel realm)
 
void setupRequiredActions (RealmModel realm)
 
void createDefaultClientScopes (RealmModel realm)
 
void setupAdminConsole (RealmModel realm)
 
void setupAdminConsoleLocaleMapper (RealmModel realm)
 
void setupRealmDefaults (RealmModel realm)
 

限定公開変数類

KeycloakSession session
 
RealmProvider model
 
String contextPath = ""
 

非公開メンバ関数

void setupOfflineTokens (RealmModel realm, RealmRepresentation realmRep)
 
void createMasterAdminManagement (RealmModel realm)
 
void checkMasterAdminManagementRoles (RealmModel realm)
 
void setupRealmAdminManagement (RealmModel realm)
 
void addAndSetAdminRole (String roleName, ClientModel parentClient, RoleModel parentRole)
 
void checkRealmAdminManagementRoles (RealmModel realm)
 
void setupAccountManagement (RealmModel realm)
 
boolean postponeMasterClientSetup (RealmRepresentation rep)
 
boolean hasRealmAdminManagementClient (RealmRepresentation rep)
 
boolean hasAccountManagementClient (RealmRepresentation rep)
 
boolean hasBrokerClient (RealmRepresentation rep)
 
boolean hasAdminConsoleClient (RealmRepresentation rep)
 
boolean hasAdminCliClient (RealmRepresentation rep)
 
boolean hasClient (RealmRepresentation rep, String clientId)
 
boolean hasRealmRole (RealmRepresentation rep, String roleName)
 
boolean hasClientScope (RealmRepresentation rep, String clientScopeName)
 
void setupAuthorizationServices (RealmModel realm)
 
void setupClientRegistrations (RealmModel realm)
 
void fireRealmPostCreate (RealmModel realm)
 

詳解

Per request object

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ RealmManager()

org.keycloak.services.managers.RealmManager.RealmManager ( KeycloakSession  session)
inline
80  {
81  this.session = session;
82  this.model = session.realms();
83  }
KeycloakSession session
Definition: RealmManager.java:68
RealmProvider model
Definition: RealmManager.java:69

関数詳解

◆ addAndSetAdminRole()

void org.keycloak.services.managers.RealmManager.addAndSetAdminRole ( String  roleName,
ClientModel  parentClient,
RoleModel  parentRole 
)
inlineprivate
378  {
379  RoleModel role = parentClient.addRole(roleName);
380  role.setDescription("${role_" + roleName + "}");
381  parentRole.addCompositeRole(role);
382  }

◆ addQueryCompositeRoles()

void org.keycloak.services.managers.RealmManager.addQueryCompositeRoles ( ClientModel  realmAccess)
inline
203  {
204  RoleModel queryClients = realmAccess.getRole(AdminRoles.QUERY_CLIENTS);
205  RoleModel queryUsers = realmAccess.getRole(AdminRoles.QUERY_USERS);
206  RoleModel queryGroups = realmAccess.getRole(AdminRoles.QUERY_GROUPS);
207 
208  RoleModel viewClients = realmAccess.getRole(AdminRoles.VIEW_CLIENTS);
209  viewClients.addCompositeRole(queryClients);
210  RoleModel viewUsers = realmAccess.getRole(AdminRoles.VIEW_USERS);
211  viewUsers.addCompositeRole(queryUsers);
212  viewUsers.addCompositeRole(queryGroups);
213  }

◆ checkMasterAdminManagementRoles()

void org.keycloak.services.managers.RealmManager.checkMasterAdminManagementRoles ( RealmModel  realm)
inlineprivate
342  {
343  RealmModel adminRealm = model.getRealmByName(Config.getAdminRealm());
344  RoleModel adminRole = adminRealm.getRole(AdminRoles.ADMIN);
345 
346  ClientModel masterAdminClient = realm.getMasterAdminClient();
347  for (String r : AdminRoles.ALL_REALM_ROLES) {
348  RoleModel found = masterAdminClient.getRole(r);
349  if (found == null) {
350  addAndSetAdminRole(r, masterAdminClient, adminRole);
351  }
352  }
353  addQueryCompositeRoles(masterAdminClient);
354  }
void addAndSetAdminRole(String roleName, ClientModel parentClient, RoleModel parentRole)
Definition: RealmManager.java:378
void addQueryCompositeRoles(ClientModel realmAccess)
Definition: RealmManager.java:203
RealmProvider model
Definition: RealmManager.java:69

◆ checkRealmAdminManagementRoles()

void org.keycloak.services.managers.RealmManager.checkRealmAdminManagementRoles ( RealmModel  realm)
inlineprivate
385  {
386  if (realm.getName().equals(Config.getAdminRealm())) { return; } // don't need to do this for master realm
387 
388  String realmAdminClientId = getRealmAdminClientId(realm);
389  ClientModel realmAdminClient = realm.getClientByClientId(realmAdminClientId);
390  RoleModel adminRole = realmAdminClient.getRole(AdminRoles.REALM_ADMIN);
391 
392  // if realm-admin role isn't in the realm model, create it
393  if (adminRole == null) {
394  adminRole = realmAdminClient.addRole(AdminRoles.REALM_ADMIN);
395  adminRole.setDescription("${role_" + AdminRoles.REALM_ADMIN + "}");
396  }
397 
398  for (String r : AdminRoles.ALL_REALM_ROLES) {
399  RoleModel found = realmAdminClient.getRole(r);
400  if (found == null) {
401  addAndSetAdminRole(r, realmAdminClient, adminRole);
402  }
403  }
404  addQueryCompositeRoles(realmAdminClient);
405  }
void addAndSetAdminRole(String roleName, ClientModel parentClient, RoleModel parentRole)
Definition: RealmManager.java:378
void addQueryCompositeRoles(ClientModel realmAccess)
Definition: RealmManager.java:203
String getRealmAdminClientId(RealmModel realm)
Definition: RealmManager.java:216

◆ createDefaultClientScopes()

void org.keycloak.services.managers.RealmManager.createDefaultClientScopes ( RealmModel  realm)
inlineprotected
160  {
161  DefaultClientScopes.createDefaultClientScopes(session, realm, true);
162  }
KeycloakSession session
Definition: RealmManager.java:68

◆ createMasterAdminManagement()

void org.keycloak.services.managers.RealmManager.createMasterAdminManagement ( RealmModel  realm)
inlineprivate
310  {
311  RealmModel adminRealm;
312  RoleModel adminRole;
313 
314  if (realm.getName().equals(Config.getAdminRealm())) {
315  adminRealm = realm;
316 
317  adminRole = realm.addRole(AdminRoles.ADMIN);
318 
319  RoleModel createRealmRole = realm.addRole(AdminRoles.CREATE_REALM);
320  adminRole.addCompositeRole(createRealmRole);
321  createRealmRole.setDescription("${role_" + AdminRoles.CREATE_REALM + "}");
322  } else {
323  adminRealm = model.getRealm(Config.getAdminRealm());
324  adminRole = adminRealm.getRole(AdminRoles.ADMIN);
325  }
326  adminRole.setDescription("${role_"+AdminRoles.ADMIN+"}");
327 
328  ClientModel realmAdminApp = KeycloakModelUtils.createClient(adminRealm, KeycloakModelUtils.getMasterRealmAdminApplicationClientId(realm.getName()));
329  // No localized name for now
330  realmAdminApp.setName(realm.getName() + " Realm");
331  realmAdminApp.setBearerOnly(true);
332  realm.setMasterAdminClient(realmAdminApp);
333 
334  for (String r : AdminRoles.ALL_REALM_ROLES) {
335  RoleModel role = realmAdminApp.addRole(r);
336  role.setDescription("${role_"+r+"}");
337  adminRole.addCompositeRole(role);
338  }
339  addQueryCompositeRoles(realmAdminApp);
340  }
void addQueryCompositeRoles(ClientModel realmAccess)
Definition: RealmManager.java:203
RealmProvider model
Definition: RealmManager.java:69

◆ createRealm() [1/2]

RealmModel org.keycloak.services.managers.RealmManager.createRealm ( String  name)
inline
101  {
102  return createRealm(name, name);
103  }
RealmModel createRealm(String name)
Definition: RealmManager.java:101

◆ createRealm() [2/2]

RealmModel org.keycloak.services.managers.RealmManager.createRealm ( String  id,
String  name 
)
inline
105  {
106  if (id == null) id = KeycloakModelUtils.generateId();
107  RealmModel realm = model.createRealm(id, name);
108  realm.setName(name);
109 
110  // setup defaults
111  setupRealmDefaults(realm);
112 
115  setupAccountManagement(realm);
116  setupBrokerService(realm);
117  setupAdminConsole(realm);
119  setupAdminCli(realm);
122  setupRequiredActions(realm);
123  setupOfflineTokens(realm, null);
127 
128  fireRealmPostCreate(realm);
129 
130  return realm;
131  }
void setupAccountManagement(RealmModel realm)
Definition: RealmManager.java:408
void createDefaultClientScopes(RealmModel realm)
Definition: RealmManager.java:160
void setupAdminConsoleLocaleMapper(RealmModel realm)
Definition: RealmManager.java:177
void setupMasterAdminManagement(RealmModel realm)
Definition: RealmManager.java:298
void setupRealmAdminManagement(RealmModel realm)
Definition: RealmManager.java:357
void setupRequiredActions(RealmModel realm)
Definition: RealmManager.java:137
void setupAdminCli(RealmModel realm)
Definition: RealmManager.java:189
void setupAdminConsole(RealmModel realm)
Definition: RealmManager.java:164
void setupImpersonationService(RealmModel realm)
Definition: RealmManager.java:433
void fireRealmPostCreate(RealmModel realm)
Definition: RealmManager.java:682
void setupAuthorizationServices(RealmModel realm)
Definition: RealmManager.java:674
void setupOfflineTokens(RealmModel realm, RealmRepresentation realmRep)
Definition: RealmManager.java:141
void setupRealmDefaults(RealmModel realm)
Definition: RealmManager.java:226
void setupClientRegistrations(RealmModel realm)
Definition: RealmManager.java:678
void setupAuthenticationFlows(RealmModel realm)
Definition: RealmManager.java:133
RealmProvider model
Definition: RealmManager.java:69
void setupBrokerService(RealmModel realm)
Definition: RealmManager.java:437

◆ fireRealmPostCreate()

void org.keycloak.services.managers.RealmManager.fireRealmPostCreate ( RealmModel  realm)
inlineprivate
682  {
683  session.getKeycloakSessionFactory().publish(new RealmModel.RealmPostCreateEvent() {
684  @Override
685  public RealmModel getCreatedRealm() {
686  return realm;
687  }
688  @Override
689  public KeycloakSession getKeycloakSession() {
690  return session;
691  }
692  });
693 
694  }
KeycloakSession session
Definition: RealmManager.java:68

◆ getContextPath()

String org.keycloak.services.managers.RealmManager.getContextPath ( )
inline
72  {
73  return contextPath;
74  }
String contextPath
Definition: RealmManager.java:70

◆ getKeycloakAdminstrationRealm()

RealmModel org.keycloak.services.managers.RealmManager.getKeycloakAdminstrationRealm ( )
inline
89  {
90  return getRealm(Config.getAdminRealm());
91  }
RealmModel getRealm(String id)
Definition: RealmManager.java:93

◆ getRealm()

RealmModel org.keycloak.services.managers.RealmManager.getRealm ( String  id)
inline
93  {
94  return model.getRealm(id);
95  }
RealmProvider model
Definition: RealmManager.java:69

◆ getRealmAdminClientId() [1/2]

String org.keycloak.services.managers.RealmManager.getRealmAdminClientId ( RealmModel  realm)
inline
216  {
217  return Constants.REALM_MANAGEMENT_CLIENT_ID;
218  }

◆ getRealmAdminClientId() [2/2]

String org.keycloak.services.managers.RealmManager.getRealmAdminClientId ( RealmRepresentation  realm)
inline
220  {
221  return Constants.REALM_MANAGEMENT_CLIENT_ID;
222  }

◆ getRealmByName()

RealmModel org.keycloak.services.managers.RealmManager.getRealmByName ( String  name)
inline
97  {
98  return model.getRealmByName(name);
99  }
RealmProvider model
Definition: RealmManager.java:69

◆ getSession()

KeycloakSession org.keycloak.services.managers.RealmManager.getSession ( )
inline
85  {
86  return session;
87  }
KeycloakSession session
Definition: RealmManager.java:68

◆ hasAccountManagementClient()

boolean org.keycloak.services.managers.RealmManager.hasAccountManagementClient ( RealmRepresentation  rep)
inlineprivate
584  {
585  return hasClient(rep, Constants.ACCOUNT_MANAGEMENT_CLIENT_ID);
586  }
boolean hasClient(RealmRepresentation rep, String clientId)
Definition: RealmManager.java:600

◆ hasAdminCliClient()

boolean org.keycloak.services.managers.RealmManager.hasAdminCliClient ( RealmRepresentation  rep)
inlineprivate
596  {
597  return hasClient(rep, Constants.ADMIN_CLI_CLIENT_ID);
598  }
boolean hasClient(RealmRepresentation rep, String clientId)
Definition: RealmManager.java:600

◆ hasAdminConsoleClient()

boolean org.keycloak.services.managers.RealmManager.hasAdminConsoleClient ( RealmRepresentation  rep)
inlineprivate
592  {
593  return hasClient(rep, Constants.ADMIN_CONSOLE_CLIENT_ID);
594  }
boolean hasClient(RealmRepresentation rep, String clientId)
Definition: RealmManager.java:600

◆ hasBrokerClient()

boolean org.keycloak.services.managers.RealmManager.hasBrokerClient ( RealmRepresentation  rep)
inlineprivate
588  {
589  return hasClient(rep, Constants.BROKER_SERVICE_CLIENT_ID);
590  }
boolean hasClient(RealmRepresentation rep, String clientId)
Definition: RealmManager.java:600

◆ hasClient()

boolean org.keycloak.services.managers.RealmManager.hasClient ( RealmRepresentation  rep,
String  clientId 
)
inlineprivate
600  {
601  if (rep.getClients() != null) {
602  for (ClientRepresentation clientRep : rep.getClients()) {
603  if (clientRep.getClientId() != null && clientRep.getClientId().equals(clientId)) {
604  return true;
605  }
606  }
607  }
608 
609  // TODO: Just for compatibility with old versions. Should be removed later...
610  if (rep.getApplications() != null) {
611  for (ApplicationRepresentation clientRep : rep.getApplications()) {
612  if (clientRep.getName().equals(clientId)) {
613  return true;
614  }
615  }
616  }
617  if (rep.getOauthClients() != null) {
618  for (OAuthClientRepresentation clientRep : rep.getOauthClients()) {
619  if (clientRep.getName().equals(clientId)) {
620  return true;
621  }
622  }
623  }
624 
625  return false;
626  }

◆ hasClientScope()

boolean org.keycloak.services.managers.RealmManager.hasClientScope ( RealmRepresentation  rep,
String  clientScopeName 
)
inlineprivate
642  {
643  if (rep.getClientScopes() == null) {
644  return false;
645  }
646 
647  for (ClientScopeRepresentation clientScope : rep.getClientScopes()) {
648  if (clientScopeName.equals(clientScope.getName())) {
649  return true;
650  }
651  }
652 
653  return false;
654  }

◆ hasRealmAdminManagementClient()

boolean org.keycloak.services.managers.RealmManager.hasRealmAdminManagementClient ( RealmRepresentation  rep)
inlineprivate
579  {
580  String realmAdminClientId = Config.getAdminRealm().equals(rep.getRealm()) ? KeycloakModelUtils.getMasterRealmAdminApplicationClientId(rep.getRealm()) : getRealmAdminClientId(rep);
581  return hasClient(rep, realmAdminClientId);
582  }
String getRealmAdminClientId(RealmModel realm)
Definition: RealmManager.java:216
boolean hasClient(RealmRepresentation rep, String clientId)
Definition: RealmManager.java:600

◆ hasRealmRole()

boolean org.keycloak.services.managers.RealmManager.hasRealmRole ( RealmRepresentation  rep,
String  roleName 
)
inlineprivate
628  {
629  if (rep.getRoles() == null || rep.getRoles().getRealm() == null) {
630  return false;
631  }
632 
633  for (RoleRepresentation role : rep.getRoles().getRealm()) {
634  if (roleName.equals(role.getName())) {
635  return true;
636  }
637  }
638 
639  return false;
640  }

◆ importRealm() [1/2]

RealmModel org.keycloak.services.managers.RealmManager.importRealm ( RealmRepresentation  rep)
inline
453  {
454  return importRealm(rep, false);
455  }
RealmModel importRealm(RealmRepresentation rep)
Definition: RealmManager.java:453

◆ importRealm() [2/2]

RealmModel org.keycloak.services.managers.RealmManager.importRealm ( RealmRepresentation  rep,
boolean  skipUserDependent 
)
inline

if "skipUserDependent" is true, then import of any models, which needs users already imported in DB, will be skipped. For example authorization

461  {
462  String id = rep.getId();
463  if (id == null) {
464  id = KeycloakModelUtils.generateId();
465  }
466  RealmModel realm = model.createRealm(id, rep.getRealm());
467  realm.setName(rep.getRealm());
468 
469  // setup defaults
470 
471  setupRealmDefaults(realm);
472 
474  if (!postponeMasterClientSetup) {
476  }
477 
480 
481  boolean postponeImpersonationSetup = false;
483  postponeImpersonationSetup = true;
484  } else {
486  }
487 
488 
489  if (!hasBrokerClient(rep)) setupBrokerService(realm);
490  if (!hasAdminConsoleClient(rep)) setupAdminConsole(realm);
491 
492  boolean postponeAdminCliSetup = false;
493  if (!hasAdminCliClient(rep)) {
495  postponeAdminCliSetup = true;
496  } else {
497  setupAdminCli(realm);
498  }
499  }
500 
501  if (!hasRealmRole(rep, Constants.OFFLINE_ACCESS_ROLE) || !hasClientScope(rep, Constants.OFFLINE_ACCESS_ROLE)) {
502  setupOfflineTokens(realm, rep);
503  }
504 
505  if (rep.getClientScopes() == null) {
507  }
508 
509  RepresentationToModel.importRealm(session, rep, realm, skipUserDependent);
510  List<ClientRepresentation> clients = rep.getClients();
511 
512  if (clients != null) {
513  ClientManager clientManager = new ClientManager(new RealmManager(session));
514 
515  for (ClientRepresentation client : clients) {
516  ClientModel clientModel = realm.getClientById(client.getId());
517 
518  if (clientModel.isServiceAccountsEnabled()) {
519  clientManager.enableServiceAccount(clientModel);
520  }
521 
522  if (Boolean.TRUE.equals(client.getAuthorizationServicesEnabled())) {
523  RepresentationToModel.createResourceServer(clientModel, session, true);
524  }
525  }
526  }
527 
529 
530  if (postponeMasterClientSetup) {
532  }
533 
534  // Assert all admin roles are available once import took place. This is needed due to import from previous version where JSON file may not contain all admin roles
537 
538  // Could happen when migrating from older version and I have exported JSON file, which contains "realm-management" client but not "impersonation" client
539  // I need to postpone impersonation because it needs "realm-management" client and its roles set
540  if (postponeImpersonationSetup) {
542  String realmAdminClientId = getRealmAdminClientId(realm);
543  }
544 
545  if (postponeAdminCliSetup) {
546  setupAdminCli(realm);
547  }
548 
550  setupRequiredActions(realm);
551 
552  // Refresh periodic sync tasks for configured storageProviders
553  List<UserStorageProviderModel> storageProviders = realm.getUserStorageProviders();
554  UserStorageSyncManager storageSync = new UserStorageSyncManager();
555  for (UserStorageProviderModel provider : storageProviders) {
556  storageSync.notifyToRefreshPeriodicSync(session, realm, provider, false);
557  }
558 
561 
562  if (rep.getKeycloakVersion() != null) {
563  MigrationModelManager.migrateImport(session, realm, rep, skipUserDependent);
564  }
565 
566  fireRealmPostCreate(realm);
567 
568  return realm;
569  }
boolean hasAdminCliClient(RealmRepresentation rep)
Definition: RealmManager.java:596
void checkMasterAdminManagementRoles(RealmModel realm)
Definition: RealmManager.java:342
void setupAccountManagement(RealmModel realm)
Definition: RealmManager.java:408
void createDefaultClientScopes(RealmModel realm)
Definition: RealmManager.java:160
void setupAdminConsoleLocaleMapper(RealmModel realm)
Definition: RealmManager.java:177
void setupMasterAdminManagement(RealmModel realm)
Definition: RealmManager.java:298
void checkRealmAdminManagementRoles(RealmModel realm)
Definition: RealmManager.java:385
void setupRealmAdminManagement(RealmModel realm)
Definition: RealmManager.java:357
boolean hasAdminConsoleClient(RealmRepresentation rep)
Definition: RealmManager.java:592
void setupRequiredActions(RealmModel realm)
Definition: RealmManager.java:137
boolean hasClientScope(RealmRepresentation rep, String clientScopeName)
Definition: RealmManager.java:642
void setupAdminCli(RealmModel realm)
Definition: RealmManager.java:189
boolean hasAccountManagementClient(RealmRepresentation rep)
Definition: RealmManager.java:584
void setupAdminConsole(RealmModel realm)
Definition: RealmManager.java:164
void setupImpersonationService(RealmModel realm)
Definition: RealmManager.java:433
boolean hasBrokerClient(RealmRepresentation rep)
Definition: RealmManager.java:588
boolean hasRealmRole(RealmRepresentation rep, String roleName)
Definition: RealmManager.java:628
void fireRealmPostCreate(RealmModel realm)
Definition: RealmManager.java:682
String getRealmAdminClientId(RealmModel realm)
Definition: RealmManager.java:216
void setupAuthorizationServices(RealmModel realm)
Definition: RealmManager.java:674
void setupOfflineTokens(RealmModel realm, RealmRepresentation realmRep)
Definition: RealmManager.java:141
void setupRealmDefaults(RealmModel realm)
Definition: RealmManager.java:226
void setupClientRegistrations(RealmModel realm)
Definition: RealmManager.java:678
void setupAuthenticationFlows(RealmModel realm)
Definition: RealmManager.java:133
KeycloakSession session
Definition: RealmManager.java:68
RealmProvider model
Definition: RealmManager.java:69
boolean postponeMasterClientSetup(RealmRepresentation rep)
Definition: RealmManager.java:571
boolean hasRealmAdminManagementClient(RealmRepresentation rep)
Definition: RealmManager.java:579
RealmManager(KeycloakSession session)
Definition: RealmManager.java:80
void setupBrokerService(RealmModel realm)
Definition: RealmManager.java:437

◆ postponeMasterClientSetup()

boolean org.keycloak.services.managers.RealmManager.postponeMasterClientSetup ( RealmRepresentation  rep)
inlineprivate
571  {
572  if (!Config.getAdminRealm().equals(rep.getRealm())) {
573  return false;
574  }
575 
576  return hasRealmAdminManagementClient(rep);
577  }
boolean hasRealmAdminManagementClient(RealmRepresentation rep)
Definition: RealmManager.java:579

◆ removeRealm()

boolean org.keycloak.services.managers.RealmManager.removeRealm ( RealmModel  realm)
inline
245  {
246 
247  ClientModel masterAdminClient = realm.getMasterAdminClient();
248  boolean removed = model.removeRealm(realm.getId());
249  if (removed) {
250  if (masterAdminClient != null) {
251  new ClientManager(this).removeClient(getKeycloakAdminstrationRealm(), masterAdminClient);
252  }
253 
254  UserSessionProvider sessions = session.sessions();
255  if (sessions != null) {
256  sessions.onRealmRemoved(realm);
257  }
258 
259  UserSessionPersisterProvider sessionsPersister = session.getProvider(UserSessionPersisterProvider.class);
260  if (sessionsPersister != null) {
261  sessionsPersister.onRealmRemoved(realm);
262  }
263 
264  AuthenticationSessionProvider authSessions = session.authenticationSessions();
265  if (authSessions != null) {
266  authSessions.onRealmRemoved(realm);
267  }
268 
269  // Refresh periodic sync tasks for configured storageProviders
270  List<UserStorageProviderModel> storageProviders = realm.getUserStorageProviders();
271  UserStorageSyncManager storageSync = new UserStorageSyncManager();
272  for (UserStorageProviderModel provider : storageProviders) {
273  storageSync.notifyToRefreshPeriodicSync(session, realm, provider, true);
274  }
275 
276  }
277  return removed;
278  }
RealmModel getKeycloakAdminstrationRealm()
Definition: RealmManager.java:89
KeycloakSession session
Definition: RealmManager.java:68
RealmProvider model
Definition: RealmManager.java:69

◆ searchUsers()

List<UserModel> org.keycloak.services.managers.RealmManager.searchUsers ( String  searchString,
RealmModel  realmModel 
)
inline

Query users based on a search string:

"Bill Burke" first and last name "bburke@redhat.com" email "Burke" lastname or username

引数
searchString
realmModel
戻り値
667  {
668  if (searchString == null) {
669  return Collections.emptyList();
670  }
671  return session.users().searchForUser(searchString.trim(), realmModel);
672  }
KeycloakSession session
Definition: RealmManager.java:68

◆ setContextPath()

void org.keycloak.services.managers.RealmManager.setContextPath ( String  contextPath)
inline
76  {
77  this.contextPath = contextPath;
78  }
String contextPath
Definition: RealmManager.java:70

◆ setupAccountManagement()

void org.keycloak.services.managers.RealmManager.setupAccountManagement ( RealmModel  realm)
inlineprivate
408  {
409  ClientModel client = realm.getClientByClientId(Constants.ACCOUNT_MANAGEMENT_CLIENT_ID);
410  if (client == null) {
411  client = KeycloakModelUtils.createClient(realm, Constants.ACCOUNT_MANAGEMENT_CLIENT_ID);
412  client.setName("${client_" + Constants.ACCOUNT_MANAGEMENT_CLIENT_ID + "}");
413  client.setEnabled(true);
414  client.setFullScopeAllowed(false);
415  String base = contextPath + "/realms/" + realm.getName() + "/account";
416  String redirectUri = base + "/*";
417  client.addRedirectUri(redirectUri);
418  client.setBaseUrl(base);
419  client.setProtocol(OIDCLoginProtocol.LOGIN_PROTOCOL);
420 
421  for (String role : AccountRoles.ALL) {
422  client.addDefaultRole(role);
423  RoleModel roleModel = client.getRole(role);
424  roleModel.setDescription("${role_" + role + "}");
425  }
426  RoleModel manageAccountLinks = client.addRole(AccountRoles.MANAGE_ACCOUNT_LINKS);
427  manageAccountLinks.setDescription("${role_" + AccountRoles.MANAGE_ACCOUNT_LINKS + "}");
428  RoleModel manageAccount = client.getRole(AccountRoles.MANAGE_ACCOUNT);
429  manageAccount.addCompositeRole(manageAccountLinks);
430  }
431  }
String contextPath
Definition: RealmManager.java:70

◆ setupAdminCli()

void org.keycloak.services.managers.RealmManager.setupAdminCli ( RealmModel  realm)
inline
189  {
190  ClientModel adminCli = realm.getClientByClientId(Constants.ADMIN_CLI_CLIENT_ID);
191  if (adminCli == null) {
192  adminCli = KeycloakModelUtils.createClient(realm, Constants.ADMIN_CLI_CLIENT_ID);
193  adminCli.setName("${client_" + Constants.ADMIN_CLI_CLIENT_ID + "}");
194  adminCli.setEnabled(true);
195  adminCli.setPublicClient(true);
196  adminCli.setFullScopeAllowed(false);
197  adminCli.setStandardFlowEnabled(false);
198  adminCli.setDirectAccessGrantsEnabled(true);
199  adminCli.setProtocol(OIDCLoginProtocol.LOGIN_PROTOCOL);
200  }
201 
202  }

◆ setupAdminConsole()

void org.keycloak.services.managers.RealmManager.setupAdminConsole ( RealmModel  realm)
inlineprotected
164  {
165  ClientModel adminConsole = realm.getClientByClientId(Constants.ADMIN_CONSOLE_CLIENT_ID);
166  if (adminConsole == null) adminConsole = KeycloakModelUtils.createClient(realm, Constants.ADMIN_CONSOLE_CLIENT_ID);
167  adminConsole.setName("${client_" + Constants.ADMIN_CONSOLE_CLIENT_ID + "}");
168  String baseUrl = contextPath + "/admin/" + realm.getName() + "/console";
169  adminConsole.setBaseUrl(baseUrl + "/index.html");
170  adminConsole.setEnabled(true);
171  adminConsole.setPublicClient(true);
172  adminConsole.addRedirectUri(baseUrl + "/*");
173  adminConsole.setFullScopeAllowed(false);
174  adminConsole.setProtocol(OIDCLoginProtocol.LOGIN_PROTOCOL);
175  }
String contextPath
Definition: RealmManager.java:70

◆ setupAdminConsoleLocaleMapper()

void org.keycloak.services.managers.RealmManager.setupAdminConsoleLocaleMapper ( RealmModel  realm)
inlineprotected
177  {
178  ClientModel adminConsole = realm.getClientByClientId(Constants.ADMIN_CONSOLE_CLIENT_ID);
179  ProtocolMapperModel localeMapper = adminConsole.getProtocolMapperByName(OIDCLoginProtocol.LOGIN_PROTOCOL, OIDCLoginProtocolFactory.LOCALE);
180 
181  if (localeMapper == null) {
182  localeMapper = ProtocolMapperUtils.findLocaleMapper(session);
183  if (localeMapper != null) {
184  adminConsole.addProtocolMapper(localeMapper);
185  }
186  }
187  }
KeycloakSession session
Definition: RealmManager.java:68

◆ setupAuthenticationFlows()

void org.keycloak.services.managers.RealmManager.setupAuthenticationFlows ( RealmModel  realm)
inlineprotected
133  {
134  if (realm.getAuthenticationFlows().size() == 0) DefaultAuthenticationFlows.addFlows(realm);
135  }

◆ setupAuthorizationServices()

void org.keycloak.services.managers.RealmManager.setupAuthorizationServices ( RealmModel  realm)
inlineprivate
674  {
675  KeycloakModelUtils.setupAuthorizationServices(realm);
676  }

◆ setupBrokerService()

void org.keycloak.services.managers.RealmManager.setupBrokerService ( RealmModel  realm)
inline
437  {
438  ClientModel client = realm.getClientByClientId(Constants.BROKER_SERVICE_CLIENT_ID);
439  if (client == null) {
440  client = KeycloakModelUtils.createClient(realm, Constants.BROKER_SERVICE_CLIENT_ID);
441  client.setEnabled(true);
442  client.setName("${client_" + Constants.BROKER_SERVICE_CLIENT_ID + "}");
443  client.setFullScopeAllowed(false);
444  client.setProtocol(OIDCLoginProtocol.LOGIN_PROTOCOL);
445 
446  for (String role : Constants.BROKER_SERVICE_ROLES) {
447  RoleModel roleModel = client.addRole(role);
448  roleModel.setDescription("${role_"+ role.toLowerCase().replaceAll("_", "-") +"}");
449  }
450  }
451  }

◆ setupClientRegistrations()

void org.keycloak.services.managers.RealmManager.setupClientRegistrations ( RealmModel  realm)
inlineprivate
678  {
679  DefaultClientRegistrationPolicies.addDefaultPolicies(realm);
680  }

◆ setupImpersonationService()

void org.keycloak.services.managers.RealmManager.setupImpersonationService ( RealmModel  realm)
inline
433  {
434  ImpersonationConstants.setupImpersonationService(session, realm);
435  }
KeycloakSession session
Definition: RealmManager.java:68

◆ setupMasterAdminManagement()

void org.keycloak.services.managers.RealmManager.setupMasterAdminManagement ( RealmModel  realm)
inline
298  {
299  // Need to refresh masterApp for current realm
300  String adminRealmId = Config.getAdminRealm();
301  RealmModel adminRealm = model.getRealm(adminRealmId);
302  ClientModel masterApp = adminRealm.getClientByClientId(KeycloakModelUtils.getMasterRealmAdminApplicationClientId(realm.getName()));
303  if (masterApp != null) {
304  realm.setMasterAdminClient(masterApp);
305  } else {
307  }
308  }
void createMasterAdminManagement(RealmModel realm)
Definition: RealmManager.java:310
RealmProvider model
Definition: RealmManager.java:69

◆ setupOfflineTokens()

void org.keycloak.services.managers.RealmManager.setupOfflineTokens ( RealmModel  realm,
RealmRepresentation  realmRep 
)
inlineprivate
141  {
142  RoleModel offlineRole = KeycloakModelUtils.setupOfflineRole(realm);
143 
144  if (realmRep != null && hasRealmRole(realmRep, Constants.OFFLINE_ACCESS_ROLE)) {
145  // Case when realmRep had the offline_access role, but not the offline_access client scope. Need to manually remove the role
146  List<RoleRepresentation> realmRoles = realmRep.getRoles().getRealm();
147  for (RoleRepresentation role : realmRoles) {
148  if (Constants.OFFLINE_ACCESS_ROLE.equals(role.getName())) {
149  realmRoles.remove(role);
150  break;
151  }
152  }
153  }
154 
155  if (realmRep == null || !hasClientScope(realmRep, Constants.OFFLINE_ACCESS_ROLE)) {
156  DefaultClientScopes.createOfflineAccessClientScope(realm, offlineRole);
157  }
158  }
boolean hasClientScope(RealmRepresentation rep, String clientScopeName)
Definition: RealmManager.java:642
boolean hasRealmRole(RealmRepresentation rep, String roleName)
Definition: RealmManager.java:628

◆ setupRealmAdminManagement()

void org.keycloak.services.managers.RealmManager.setupRealmAdminManagement ( RealmModel  realm)
inlineprivate
357  {
358  if (realm.getName().equals(Config.getAdminRealm())) { return; } // don't need to do this for master realm
359 
360  String realmAdminClientId = getRealmAdminClientId(realm);
361  ClientModel realmAdminClient = realm.getClientByClientId(realmAdminClientId);
362  if (realmAdminClient == null) {
363  realmAdminClient = KeycloakModelUtils.createClient(realm, realmAdminClientId);
364  realmAdminClient.setName("${client_" + realmAdminClientId + "}");
365  }
366  RoleModel adminRole = realmAdminClient.addRole(AdminRoles.REALM_ADMIN);
367  adminRole.setDescription("${role_" + AdminRoles.REALM_ADMIN + "}");
368  realmAdminClient.setBearerOnly(true);
369  realmAdminClient.setFullScopeAllowed(false);
370  realmAdminClient.setProtocol(OIDCLoginProtocol.LOGIN_PROTOCOL);
371 
372  for (String r : AdminRoles.ALL_REALM_ROLES) {
373  addAndSetAdminRole(r, realmAdminClient, adminRole);
374  }
375  addQueryCompositeRoles(realmAdminClient);
376  }
void addAndSetAdminRole(String roleName, ClientModel parentClient, RoleModel parentRole)
Definition: RealmManager.java:378
void addQueryCompositeRoles(ClientModel realmAccess)
Definition: RealmManager.java:203
String getRealmAdminClientId(RealmModel realm)
Definition: RealmManager.java:216

◆ setupRealmDefaults()

void org.keycloak.services.managers.RealmManager.setupRealmDefaults ( RealmModel  realm)
inlineprotected
226  {
227  realm.setBrowserSecurityHeaders(BrowserSecurityHeaders.defaultHeaders);
228 
229  // brute force
230  realm.setBruteForceProtected(false); // default settings off for now todo set it on
231  realm.setPermanentLockout(false);
232  realm.setMaxFailureWaitSeconds(900);
233  realm.setMinimumQuickLoginWaitSeconds(60);
234  realm.setWaitIncrementSeconds(60);
235  realm.setQuickLoginCheckMilliSeconds(1000);
236  realm.setMaxDeltaTimeSeconds(60 * 60 * 12); // 12 hours
237  realm.setFailureFactor(30);
238  realm.setSslRequired(SslRequired.EXTERNAL);
239  realm.setOTPPolicy(OTPPolicy.DEFAULT_POLICY);
240  realm.setLoginWithEmailAllowed(true);
241 
242  realm.setEventsListeners(Collections.singleton("jboss-logging"));
243  }

◆ setupRequiredActions()

void org.keycloak.services.managers.RealmManager.setupRequiredActions ( RealmModel  realm)
inlineprotected
137  {
138  if (realm.getRequiredActionProviders().size() == 0) DefaultRequiredActions.addActions(realm);
139  }

◆ updateRealmEventsConfig()

void org.keycloak.services.managers.RealmManager.updateRealmEventsConfig ( RealmEventsConfigRepresentation  rep,
RealmModel  realm 
)
inline
280  {
281  realm.setEventsEnabled(rep.isEventsEnabled());
282  realm.setEventsExpiration(rep.getEventsExpiration() != null ? rep.getEventsExpiration() : 0);
283  if (rep.getEventsListeners() != null) {
284  realm.setEventsListeners(new HashSet<>(rep.getEventsListeners()));
285  }
286  if(rep.getEnabledEventTypes() != null) {
287  realm.setEnabledEventTypes(new HashSet<>(rep.getEnabledEventTypes()));
288  }
289  if(rep.isAdminEventsEnabled() != null) {
290  realm.setAdminEventsEnabled(rep.isAdminEventsEnabled());
291  }
292  if(rep.isAdminEventsDetailsEnabled() != null){
293  realm.setAdminEventsDetailsEnabled(rep.isAdminEventsDetailsEnabled());
294  }
295  }

メンバ詳解

◆ contextPath

String org.keycloak.services.managers.RealmManager.contextPath = ""
protected

◆ model

RealmProvider org.keycloak.services.managers.RealmManager.model
protected

◆ session

KeycloakSession org.keycloak.services.managers.RealmManager.session
protected

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