Class GroupStorageManager

java.lang.Object
org.keycloak.storage.AbstractStorageManager<org.keycloak.storage.group.GroupStorageProvider,org.keycloak.storage.group.GroupStorageProviderModel>
org.keycloak.storage.GroupStorageManager
All Implemented Interfaces:
org.keycloak.models.GroupProvider, org.keycloak.provider.Provider, org.keycloak.storage.group.GroupLookupProvider

public class GroupStorageManager extends org.keycloak.storage.AbstractStorageManager<org.keycloak.storage.group.GroupStorageProvider,org.keycloak.storage.group.GroupStorageProviderModel> implements org.keycloak.models.GroupProvider
  • Field Summary

    Fields inherited from class org.keycloak.storage.AbstractStorageManager

    session

    Fields inherited from interface org.keycloak.models.GroupProvider

    DEFAULT_ESCAPE_SLASHES
  • Constructor Summary

    Constructors
    Constructor
    Description
    GroupStorageManager(org.keycloak.models.KeycloakSession session)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addTopLevelGroup(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel subGroup)
     
    void
     
    org.keycloak.models.GroupModel
    createGroup(org.keycloak.models.RealmModel realm, String id, org.keycloak.models.GroupModel.Type type, String name, org.keycloak.models.GroupModel toParent)
     
    org.keycloak.models.GroupModel
    getGroupById(org.keycloak.models.RealmModel realm, String id)
     
    org.keycloak.models.GroupModel
    getGroupByName(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel parent, String name)
     
    Stream<org.keycloak.models.GroupModel>
    getGroupsByRoleStream(org.keycloak.models.RealmModel realm, org.keycloak.models.RoleModel role, Integer firstResult, Integer maxResults)
     
    getGroupsCount(org.keycloak.models.RealmModel realm, Boolean onlyTopGroups)
     
    getGroupsCountByNameContaining(org.keycloak.models.RealmModel realm, String search)
     
    Stream<org.keycloak.models.GroupModel>
    getGroupsStream(org.keycloak.models.RealmModel realm)
     
    Stream<org.keycloak.models.GroupModel>
    getGroupsStream(org.keycloak.models.RealmModel realm, Stream<String> ids, String search, Integer first, Integer max)
     
    Stream<org.keycloak.models.GroupModel>
    getTopLevelGroupsStream(org.keycloak.models.RealmModel realm, String search, Boolean exact, Integer firstResult, Integer maxResults)
     
    void
    moveGroup(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel group, org.keycloak.models.GroupModel toParent)
     
    void
    preRemove(org.keycloak.models.RealmModel realm)
     
    boolean
    removeGroup(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel group)
     
    Stream<org.keycloak.models.GroupModel>
    searchForGroupByNameStream(org.keycloak.models.RealmModel realm, String search, Boolean exact, Integer firstResult, Integer maxResults)
    Obtaining groups from an external client storage is time-bounded.
    Stream<org.keycloak.models.GroupModel>
    searchGroupsByAttributes(org.keycloak.models.RealmModel realm, Map<String,String> attributes, Integer firstResult, Integer maxResults)
     

    Methods inherited from class org.keycloak.storage.AbstractStorageManager

    consumeEnabledStorageProvidersWithTimeout, flatMapEnabledStorageProvidersWithTimeout, getEnabledStorageProviders, getStorageProviderFactory, getStorageProviderInstance, getStorageProviderInstance, getStorageProviderInstance, getStorageProviderInstance, getStorageProviderModel, getStorageProviderModels, getStorageProviderTimeout, mapEnabledStorageProvidersWithTimeout

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.keycloak.storage.group.GroupLookupProvider

    searchForGroupByNameStream

    Methods inherited from interface org.keycloak.models.GroupProvider

    createGroup, createGroup, createGroup, createGroup, getGroupsCount, getGroupsStream, getGroupsStream, getTopLevelGroupsStream, getTopLevelGroupsStream
  • Constructor Details

    • GroupStorageManager

      public GroupStorageManager(org.keycloak.models.KeycloakSession session)
  • Method Details

    • getGroupById

      public org.keycloak.models.GroupModel getGroupById(org.keycloak.models.RealmModel realm, String id)
      Specified by:
      getGroupById in interface org.keycloak.storage.group.GroupLookupProvider
    • getGroupByName

      public org.keycloak.models.GroupModel getGroupByName(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel parent, String name)
      Specified by:
      getGroupByName in interface org.keycloak.storage.group.GroupLookupProvider
    • searchGroupsByAttributes

      public Stream<org.keycloak.models.GroupModel> searchGroupsByAttributes(org.keycloak.models.RealmModel realm, Map<String,String> attributes, Integer firstResult, Integer maxResults)
      Specified by:
      searchGroupsByAttributes in interface org.keycloak.storage.group.GroupLookupProvider
    • searchForGroupByNameStream

      public Stream<org.keycloak.models.GroupModel> searchForGroupByNameStream(org.keycloak.models.RealmModel realm, String search, Boolean exact, Integer firstResult, Integer maxResults)
      Obtaining groups from an external client storage is time-bounded. In case the external group storage isn't available at least groups from a local storage are returned. For this purpose the org.keycloak.services.DefaultKeycloakSessionFactory#getClientStorageProviderTimeout() property is used. Default value is 3000 milliseconds and it's configurable. See org.keycloak.services.DefaultKeycloakSessionFactory for details.
      Specified by:
      searchForGroupByNameStream in interface org.keycloak.storage.group.GroupLookupProvider
    • getGroupsStream

      public Stream<org.keycloak.models.GroupModel> getGroupsStream(org.keycloak.models.RealmModel realm)
      Specified by:
      getGroupsStream in interface org.keycloak.models.GroupProvider
    • getGroupsStream

      public Stream<org.keycloak.models.GroupModel> getGroupsStream(org.keycloak.models.RealmModel realm, Stream<String> ids, String search, Integer first, Integer max)
      Specified by:
      getGroupsStream in interface org.keycloak.models.GroupProvider
    • getGroupsCount

      public Long getGroupsCount(org.keycloak.models.RealmModel realm, Boolean onlyTopGroups)
      Specified by:
      getGroupsCount in interface org.keycloak.models.GroupProvider
    • getGroupsCountByNameContaining

      public Long getGroupsCountByNameContaining(org.keycloak.models.RealmModel realm, String search)
      Specified by:
      getGroupsCountByNameContaining in interface org.keycloak.models.GroupProvider
    • getGroupsByRoleStream

      public Stream<org.keycloak.models.GroupModel> getGroupsByRoleStream(org.keycloak.models.RealmModel realm, org.keycloak.models.RoleModel role, Integer firstResult, Integer maxResults)
      Specified by:
      getGroupsByRoleStream in interface org.keycloak.models.GroupProvider
    • getTopLevelGroupsStream

      public Stream<org.keycloak.models.GroupModel> getTopLevelGroupsStream(org.keycloak.models.RealmModel realm, String search, Boolean exact, Integer firstResult, Integer maxResults)
      Specified by:
      getTopLevelGroupsStream in interface org.keycloak.models.GroupProvider
    • createGroup

      public org.keycloak.models.GroupModel createGroup(org.keycloak.models.RealmModel realm, String id, org.keycloak.models.GroupModel.Type type, String name, org.keycloak.models.GroupModel toParent)
      Specified by:
      createGroup in interface org.keycloak.models.GroupProvider
    • removeGroup

      public boolean removeGroup(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel group)
      Specified by:
      removeGroup in interface org.keycloak.models.GroupProvider
    • moveGroup

      public void moveGroup(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel group, org.keycloak.models.GroupModel toParent)
      Specified by:
      moveGroup in interface org.keycloak.models.GroupProvider
    • addTopLevelGroup

      public void addTopLevelGroup(org.keycloak.models.RealmModel realm, org.keycloak.models.GroupModel subGroup)
      Specified by:
      addTopLevelGroup in interface org.keycloak.models.GroupProvider
    • preRemove

      public void preRemove(org.keycloak.models.RealmModel realm)
      Specified by:
      preRemove in interface org.keycloak.models.GroupProvider
    • close

      public void close()
      Specified by:
      close in interface org.keycloak.provider.Provider