org.keycloak.storage

## Interface UserStorageProvider

- All Superinterfaces:
    Provider
  All Known Implementing Classes:
    KerberosFederationProvider, LDAPStorageProvider, SSSDFederationProvider

      public interface UserStorageProvider
      extends Provider

  A class implementing this interface represents a user storage provider to Keycloak.

  This interface contains only very basic methods for manipulating users. However, the storage provider capabilities are extended by implementing one or more of the following capability interfaces:
  - `UserLookupProvider` - Provide basic lookup methods. After implementing it is possible to login using users from the storage.
  - `UserQueryProvider` - Provide complex lookup methods. After implementing it is possible to manage users from admin console.
  - `UserRegistrationProvider` - Provide methods for adding users. After implementing it is possible to store registered users in the storage.
  - `UserBulkUpdateProvider` - After implementing it is possible to perform bulk operations on all users from storage (for example, addition of a role to all users).
  - `ImportedUserValidation` - Provider method for validating users within Keycloak local storage that are imported from the storage.
  - `ImportSynchronization` - Provider methods for synchronization of the storage with Keycloak local storage. After implementing it is possible to sync users in the Admin console.
  Version:
    $Revision: 1 $
  Author:
    Bill Burke

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `UserStorageProvider.EditMode` Optional type that can be used by implementations to describe edit mode of user storage

  - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default void` | `preRemove(RealmModel realm)` Callback when a realm is removed.
    `default void` | `preRemove(RealmModel realm, GroupModel group)` Callback when a group is removed.
    `default void` | `preRemove(RealmModel realm, RoleModel role)` Callback when a role is removed.

    - ### Methods inherited from interface org.keycloak.provider.Provider

      `close`

- - ### Method Detail

    - #### preRemove

          default void preRemove(RealmModel realm)

      Callback when a realm is removed. Implement this if, for example, you want to do some cleanup in your user storage when a realm is removed
      Parameters:
        `realm` -

    - #### preRemove

          default void preRemove(RealmModel realm,
                                 GroupModel group)

      Callback when a group is removed. Allows you to do things like remove a user group mapping in your external store if appropriate
      Parameters:
        `realm` -
        `group` -

    - #### preRemove

          default void preRemove(RealmModel realm,
                                 RoleModel role)

      Callback when a role is removed. Allows you to do things like remove a user role mapping in your external store if appropriate
      Parameters:
        `realm` -
        `role` -

Copyright © 2021 JBoss by Red Hat. All rights reserved.