Class RoleStorageManager

java.lang.Object
org.keycloak.storage.RoleStorageManager
All Implemented Interfaces:
org.keycloak.models.RoleProvider, org.keycloak.provider.Provider, org.keycloak.storage.role.RoleLookupProvider

public class RoleStorageManager extends Object implements org.keycloak.models.RoleProvider
  • Field Details

    • session

      protected org.keycloak.models.KeycloakSession session
  • Constructor Details

    • RoleStorageManager

      public RoleStorageManager(org.keycloak.models.KeycloakSession session, long roleStorageProviderTimeout)
  • Method Details

    • isStorageProviderEnabled

      public static boolean isStorageProviderEnabled(org.keycloak.models.RealmModel realm, String providerId)
    • getStorageProviderModel

      public static org.keycloak.storage.role.RoleStorageProviderModel getStorageProviderModel(org.keycloak.models.RealmModel realm, String componentId)
    • getStorageProvider

      public static org.keycloak.storage.role.RoleStorageProvider getStorageProvider(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, String componentId)
    • getStorageProviders

      public static <T> Stream<org.keycloak.storage.role.RoleStorageProviderModel> getStorageProviders(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, Class<T> type)
    • getStorageProviderInstance

      public static org.keycloak.storage.role.RoleStorageProvider getStorageProviderInstance(org.keycloak.models.KeycloakSession session, org.keycloak.storage.role.RoleStorageProviderModel model, org.keycloak.storage.role.RoleStorageProviderFactory factory)
    • getStorageProviders

      public static <T> Stream<T> getStorageProviders(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, Class<T> type)
    • getEnabledStorageProviders

      public static <T> Stream<T> getEnabledStorageProviders(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, Class<T> type)
    • addRealmRole

      public org.keycloak.models.RoleModel addRealmRole(org.keycloak.models.RealmModel realm, String name)
      Specified by:
      addRealmRole in interface org.keycloak.models.RoleProvider
    • addRealmRole

      public org.keycloak.models.RoleModel addRealmRole(org.keycloak.models.RealmModel realm, String id, String name)
      Specified by:
      addRealmRole in interface org.keycloak.models.RoleProvider
    • getRealmRole

      public org.keycloak.models.RoleModel getRealmRole(org.keycloak.models.RealmModel realm, String name)
      Specified by:
      getRealmRole in interface org.keycloak.storage.role.RoleLookupProvider
    • getRoleById

      public org.keycloak.models.RoleModel getRoleById(org.keycloak.models.RealmModel realm, String id)
      Specified by:
      getRoleById in interface org.keycloak.storage.role.RoleLookupProvider
    • getRealmRolesStream

      public Stream<org.keycloak.models.RoleModel> getRealmRolesStream(org.keycloak.models.RealmModel realm, Integer first, Integer max)
      Specified by:
      getRealmRolesStream in interface org.keycloak.models.RoleProvider
    • getRolesStream

      public Stream<org.keycloak.models.RoleModel> getRolesStream(org.keycloak.models.RealmModel realm, Stream<String> ids, String search, Integer first, Integer max)
      Specified by:
      getRolesStream in interface org.keycloak.models.RoleProvider
    • getCompositeRolesStream

      public Stream<org.keycloak.models.RoleModel> getCompositeRolesStream(org.keycloak.models.RealmModel realm, Set<String> parentRoleIds)
      Specified by:
      getCompositeRolesStream in interface org.keycloak.models.RoleProvider
    • searchForRolesStream

      public Stream<org.keycloak.models.RoleModel> searchForRolesStream(org.keycloak.models.RealmModel realm, String search, Integer first, Integer max)
      Obtaining roles from an external role storage is time-bounded. In case the external role storage isn't available at least roles from a local storage are returned. For this purpose the org.keycloak.services.DefaultKeycloakSessionFactory#getRoleStorageProviderTimeout() property is used. Default value is 3000 milliseconds and it's configurable. See org.keycloak.services.DefaultKeycloakSessionFactory for details.
      Specified by:
      searchForRolesStream in interface org.keycloak.storage.role.RoleLookupProvider
    • removeRole

      public boolean removeRole(org.keycloak.models.RoleModel role)
      Specified by:
      removeRole in interface org.keycloak.models.RoleProvider
    • removeRoles

      public void removeRoles(org.keycloak.models.RealmModel realm)
      Specified by:
      removeRoles in interface org.keycloak.models.RoleProvider
    • removeRoles

      public void removeRoles(org.keycloak.models.ClientModel client)
      Specified by:
      removeRoles in interface org.keycloak.models.RoleProvider
    • addClientRole

      public org.keycloak.models.RoleModel addClientRole(org.keycloak.models.ClientModel client, String name)
      Specified by:
      addClientRole in interface org.keycloak.models.RoleProvider
    • addClientRole

      public org.keycloak.models.RoleModel addClientRole(org.keycloak.models.ClientModel client, String id, String name)
      Specified by:
      addClientRole in interface org.keycloak.models.RoleProvider
    • getClientRole

      public org.keycloak.models.RoleModel getClientRole(org.keycloak.models.ClientModel client, String name)
      Specified by:
      getClientRole in interface org.keycloak.storage.role.RoleLookupProvider
    • getClientRolesStream

      public Stream<org.keycloak.models.RoleModel> getClientRolesStream(org.keycloak.models.ClientModel client)
      Specified by:
      getClientRolesStream in interface org.keycloak.models.RoleProvider
    • getClientRolesStream

      public Stream<org.keycloak.models.RoleModel> getClientRolesStream(org.keycloak.models.ClientModel client, Integer first, Integer max)
      Specified by:
      getClientRolesStream in interface org.keycloak.models.RoleProvider
    • searchForClientRolesStream

      public Stream<org.keycloak.models.RoleModel> searchForClientRolesStream(org.keycloak.models.ClientModel client, String search, Integer first, Integer max)
      Obtaining roles from an external role storage is time-bounded. In case the external role storage isn't available at least roles from a local storage are returned. For this purpose the org.keycloak.services.DefaultKeycloakSessionFactory#getRoleStorageProviderTimeout()} property is used. Default value is 3000 milliseconds and it's configurable. See org.keycloak.services.DefaultKeycloakSessionFactory for details.
      Specified by:
      searchForClientRolesStream in interface org.keycloak.storage.role.RoleLookupProvider
    • searchForClientRolesStream

      public Stream<org.keycloak.models.RoleModel> searchForClientRolesStream(org.keycloak.models.RealmModel realm, Stream<String> ids, String search, Integer first, Integer max)
      Specified by:
      searchForClientRolesStream in interface org.keycloak.storage.role.RoleLookupProvider
    • searchForClientRolesStream

      public Stream<org.keycloak.models.RoleModel> searchForClientRolesStream(org.keycloak.models.RealmModel realm, String search, Stream<String> excludedIds, Integer first, Integer max)
      Specified by:
      searchForClientRolesStream in interface org.keycloak.storage.role.RoleLookupProvider
    • close

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