Package org.keycloak.models
Interface UserProvider
- 
- All Superinterfaces:
- Provider,- UserBulkUpdateProvider,- UserLookupProvider,- UserQueryProvider,- UserRegistrationProvider
 - All Known Subinterfaces:
- UserCache,- UserCache.Streams,- UserProvider.Streams
 - All Known Implementing Classes:
- JpaUserProvider,- MapUserProvider,- UserCacheSession,- UserStorageManager
 
 public interface UserProvider extends Provider, UserLookupProvider, UserQueryProvider, UserRegistrationProvider, UserBulkUpdateProvider - Version:
- $Revision: 1 $
- Author:
- Bill Burke
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Interface Description static interfaceUserProvider.StreamsDeprecated.This interface is no longer necessary, collection-based methods were removed from the parent interface and therefore the parent interface can be used directly
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description voidaddConsent(RealmModel realm, String userId, UserConsentModel consent)Add user consent for the user.voidaddFederatedIdentity(RealmModel realm, UserModel user, FederatedIdentityModel socialLink)Adds a federated identity link for the user within the realmUserModeladdUser(RealmModel realm, String id, String username, boolean addDefaultRoles, boolean addDefaultRequiredActions)Adds a new user into the storage.voidclose()UserConsentModelgetConsentByClient(RealmModel realm, String userId, String clientInternalId)Returns UserConsentModel given by a user with the userId for the client with clientInternalIdStream<UserConsentModel>getConsentsStream(RealmModel realm, String userId)Obtains the consents associated with the user identified by the specifieduserId.Stream<FederatedIdentityModel>getFederatedIdentitiesStream(RealmModel realm, UserModel user)Obtains the federated identities of the specified user.FederatedIdentityModelgetFederatedIdentity(RealmModel realm, UserModel user, String socialProvider)Returns details of the association between the user and the socialProvider.intgetNotBeforeOfUser(RealmModel realm, UserModel user)Gets the notBefore value for the given userUserModelgetServiceAccount(ClientModel client)Return a UserModel representing service account of the clientUserModelgetUserByFederatedIdentity(RealmModel realm, FederatedIdentityModel socialLink)Returns a userModel that corresponds to the given socialLink.default Stream<UserModel>getUsersStream(RealmModel realm, boolean includeServiceAccounts)Deprecated.UseUserQueryProvider.searchForUserStream(RealmModel, Map)withUserModel.INCLUDE_SERVICE_ACCOUNTwithin params instead.default Stream<UserModel>getUsersStream(RealmModel realm, Integer firstResult, Integer maxResults, boolean includeServiceAccounts)Deprecated.voidpreRemove(ClientScopeModel clientScope)Called when a client scope is removed.voidpreRemove(ProtocolMapperModel protocolMapper)Called when a protocolMapper is removedvoidpreRemove(RealmModel realm)Called when a realm is removed.voidpreRemove(RealmModel realm, ComponentModel component)Called when a component is removed.voidpreRemove(RealmModel realm, ClientModel client)Called when a client is removed.voidpreRemove(RealmModel realm, GroupModel group)Called when a group is removed.voidpreRemove(RealmModel realm, IdentityProviderModel provider)Called when an identity provider is removed.voidpreRemove(RealmModel realm, RoleModel role)Called when a role is removed.booleanremoveFederatedIdentity(RealmModel realm, UserModel user, String socialProvider)Removes federation link between the user and the identity provider given by its idvoidremoveImportedUsers(RealmModel realm, String storageProviderId)Removes any imported users from a specific User Storage Provider.booleanrevokeConsentForClient(RealmModel realm, String userId, String clientInternalId)Remove a user consent given by the user id and client idvoidsetNotBeforeForUser(RealmModel realm, UserModel user, int notBefore)Sets the notBefore value for the given uservoidunlinkUsers(RealmModel realm, String storageProviderId)Set federation link tonullto imported users of a specific User Storage ProvidervoidupdateConsent(RealmModel realm, String userId, UserConsentModel consent)Update client scopes in the stored user consentvoidupdateFederatedIdentity(RealmModel realm, UserModel federatedUser, FederatedIdentityModel federatedIdentityModel)Update details of association between the federatedUser and the idp given by the federatedIdentityModel- 
Methods inherited from interface org.keycloak.storage.user.UserBulkUpdateProvidergrantToAllUsers
 - 
Methods inherited from interface org.keycloak.storage.user.UserLookupProvidergetUserByCredential, getUserByEmail, getUserById, getUserByUsername
 - 
Methods inherited from interface org.keycloak.storage.user.UserQueryProvidergetGroupMembersStream, getGroupMembersStream, getRoleMembersStream, getRoleMembersStream, getUsersCount, getUsersCount, getUsersCount, getUsersCount, getUsersCount, getUsersCount, getUsersCount, getUsersStream, getUsersStream, searchForUserByUserAttributeStream, searchForUserStream, searchForUserStream, searchForUserStream, searchForUserStream
 - 
Methods inherited from interface org.keycloak.storage.user.UserRegistrationProvideraddUser, removeUser
 
- 
 
- 
- 
- 
Method Detail- 
setNotBeforeForUservoid setNotBeforeForUser(RealmModel realm, UserModel user, int notBefore) Sets the notBefore value for the given user- Parameters:
- realm- a reference to the realm
- user- the user model
- notBefore- new value for notBefore
- Throws:
- ModelException- when user doesn't exist in the storage
 
 - 
getNotBeforeOfUserint getNotBeforeOfUser(RealmModel realm, UserModel user) Gets the notBefore value for the given user- Parameters:
- realm- a reference to the realm
- user- the user model
- Returns:
- the value of notBefore
- Throws:
- ModelException- when user doesn't exist in the storage
 
 - 
getServiceAccountUserModel getServiceAccount(ClientModel client) Return a UserModel representing service account of the client- Parameters:
- client- the client model
- Returns:
- userModel representing service account of the client
- Throws:
- IllegalArgumentException- when there are more service accounts associated with the given clientId
 
 - 
getUsersStream@Deprecated default Stream<UserModel> getUsersStream(RealmModel realm, boolean includeServiceAccounts) Deprecated.UseUserQueryProvider.searchForUserStream(RealmModel, Map)withUserModel.INCLUDE_SERVICE_ACCOUNTwithin params instead.Obtains the users associated with the specified realm.- Parameters:
- realm- a reference to the realm being used for the search.
- includeServiceAccounts-- trueif service accounts should be included in the result;- falseotherwise.
- Returns:
- a non-null Streamof users associated withe the realm.
 
 - 
getUsersStream@Deprecated default Stream<UserModel> getUsersStream(RealmModel realm, Integer firstResult, Integer maxResults, boolean includeServiceAccounts) Deprecated.Obtains the users associated with the specified realm.- Parameters:
- realm- a reference to the realm being used for the search.
- firstResult- first result to return. Ignored if negative, zero, or- null.
- maxResults- maximum number of results to return. Ignored if negative or- null.
- includeServiceAccounts-- trueif service accounts should be included in the result;- falseotherwise.
- Returns:
- a non-null Streamof users associated withe the realm.
 
 - 
addUserUserModel addUser(RealmModel realm, String id, String username, boolean addDefaultRoles, boolean addDefaultRequiredActions) Adds a new user into the storage. only used for local storage- Parameters:
- realm- the realm that user will be created in
- id- id of the new user. Should be generated to a random value if- null.
- username- username
- addDefaultRoles- if- true, the user should join all realm default roles
- addDefaultRequiredActions- if- true, all default required actions are added to the created user
- Returns:
- model of created user
- Throws:
- NullPointerException- when username or realm is- null
- ModelDuplicateException- when a user with given id or username already exists
 
 - 
removeImportedUsersvoid removeImportedUsers(RealmModel realm, String storageProviderId) Removes any imported users from a specific User Storage Provider.- Parameters:
- realm- a reference to the realm
- storageProviderId- id of the user storage provider
 
 - 
unlinkUsersvoid unlinkUsers(RealmModel realm, String storageProviderId) Set federation link tonullto imported users of a specific User Storage Provider- Parameters:
- realm- a reference to the realm
- storageProviderId- id of the storage provider
 
 - 
addConsentvoid addConsent(RealmModel realm, String userId, UserConsentModel consent) Add user consent for the user.- Parameters:
- realm- a reference to the realm
- userId- id of the user
- consent- all details corresponding to the granted consent
- Throws:
- ModelException- If there is no user with userId
 
 - 
getConsentByClientUserConsentModel getConsentByClient(RealmModel realm, String userId, String clientInternalId) Returns UserConsentModel given by a user with the userId for the client with clientInternalId- Parameters:
- realm- a reference to the realm
- userId- id of the user
- clientInternalId- id of the client
- Returns:
- consent given by the user to the client or nullif no consent or user exists
- Throws:
- ModelException- when there are more consents fulfilling specified parameters
 
 - 
getConsentsStreamStream<UserConsentModel> getConsentsStream(RealmModel realm, String userId) Obtains the consents associated with the user identified by the specifieduserId.- Parameters:
- realm- a reference to the realm.
- userId- the user identifier.
- Returns:
- a non-null Streamof consents associated with the user.
 
 - 
updateConsentvoid updateConsent(RealmModel realm, String userId, UserConsentModel consent) Update client scopes in the stored user consent- Parameters:
- realm- a reference to the realm
- userId- id of the user
- consent- new details of the user consent
- Throws:
- ModelException- when consent doesn't exist for the userId
 
 - 
revokeConsentForClientboolean revokeConsentForClient(RealmModel realm, String userId, String clientInternalId) Remove a user consent given by the user id and client id- Parameters:
- realm- a reference to the realm
- userId- id of the user
- clientInternalId- id of the client
- Returns:
- trueif the consent was removed,- falseotherwise TODO: Make this method return Boolean so that store can return "I don't know" answer, this can be used for example in async stores
 
 - 
addFederatedIdentityvoid addFederatedIdentity(RealmModel realm, UserModel user, FederatedIdentityModel socialLink) Adds a federated identity link for the user within the realm- Parameters:
- realm- a reference to the realm
- user- the user model
- socialLink- the federated identity model containing all details of the association between the user and the identity provider
 
 - 
removeFederatedIdentityboolean removeFederatedIdentity(RealmModel realm, UserModel user, String socialProvider) Removes federation link between the user and the identity provider given by its id- Parameters:
- realm- a reference to the realm
- user- the user model
- socialProvider- alias of the identity provider, see- IdentityProviderModel.getAlias()
- Returns:
- trueif the association was removed,- falseotherwise TODO: Make this method return Boolean so that store can return "I don't know" answer, this can be used for example in async stores
 
 - 
updateFederatedIdentityvoid updateFederatedIdentity(RealmModel realm, UserModel federatedUser, FederatedIdentityModel federatedIdentityModel) Update details of association between the federatedUser and the idp given by the federatedIdentityModel- Parameters:
- realm- a reference to the realm
- federatedUser- the user model
- federatedIdentityModel- the federated identity model containing all details of the association between the user and the identity provider
 
 - 
getFederatedIdentitiesStreamStream<FederatedIdentityModel> getFederatedIdentitiesStream(RealmModel realm, UserModel user) Obtains the federated identities of the specified user.- Parameters:
- realm- a reference to the realm.
- user- the reference to the user.
- Returns:
- a non-null Streamof federated identities associated with the user.
 
 - 
getFederatedIdentityFederatedIdentityModel getFederatedIdentity(RealmModel realm, UserModel user, String socialProvider) Returns details of the association between the user and the socialProvider.- Parameters:
- realm- a reference to the realm
- user- the user model
- socialProvider- the id of the identity provider
- Returns:
- federatedIdentityModel or nullif no association exists
 
 - 
getUserByFederatedIdentityUserModel getUserByFederatedIdentity(RealmModel realm, FederatedIdentityModel socialLink) Returns a userModel that corresponds to the given socialLink.- Parameters:
- realm- a reference to the realm
- socialLink- the socialLink
- Returns:
- the user corresponding to socialLink and nullif no such user exists
- Throws:
- IllegalStateException- when there are more users for the given socialLink
 
 - 
preRemovevoid preRemove(RealmModel realm) Called when a realm is removed. Should remove all users that belong to the realm.- Parameters:
- realm- a reference to the realm
 
 - 
preRemovevoid preRemove(RealmModel realm, IdentityProviderModel provider) Called when an identity provider is removed. Should remove all federated identities assigned to users from the provider.- Parameters:
- realm- a reference to the realm
- provider- provider model
 
 - 
preRemovevoid preRemove(RealmModel realm, RoleModel role) Called when a role is removed. Should remove the role membership for each user.- Parameters:
- realm- a reference to the realm
- role- the role model
 
 - 
preRemovevoid preRemove(RealmModel realm, GroupModel group) Called when a group is removed. Should remove the group membership for each user.- Parameters:
- realm- a reference to the realm
- group- the group model
 
 - 
preRemovevoid preRemove(RealmModel realm, ClientModel client) Called when a client is removed. Should remove all user consents associated with the client- Parameters:
- realm- a reference to the realm
- client- the client model
 
 - 
preRemovevoid preRemove(ProtocolMapperModel protocolMapper) Called when a protocolMapper is removed- Parameters:
- protocolMapper- the protocolMapper model
 
 - 
preRemovevoid preRemove(ClientScopeModel clientScope) Called when a client scope is removed. Should remove the clientScope from each user consent- Parameters:
- clientScope- the clientScope model
 
 - 
preRemovevoid preRemove(RealmModel realm, ComponentModel component) Called when a component is removed. Should remove all data in UserStorage associated with removed component. For example,- if component corresponds to UserStorageProvider all imported users from the provider should be removed,
- if component corresponds to ClientStorageProvider all consents granted for clients imported from the provider should be removed
 - Parameters:
- realm- a reference to the realm
- component- the component model
 
 
- 
 
-