Class 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 Detail

      • session

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

      • RoleStorageManager

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

      • 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
      • 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 DefaultKeycloakSessionFactory.getRoleStorageProviderTimeout() property is used. Default value is 3000 milliseconds and it's configurable. See 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 DefaultKeycloakSessionFactory.getRoleStorageProviderTimeout() property is used. Default value is 3000 milliseconds and it's configurable. See DefaultKeycloakSessionFactory for details.
        Specified by:
        searchForClientRolesStream in interface org.keycloak.storage.role.RoleLookupProvider
      • close

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