Package org.keycloak.storage.adapter
Class AbstractUserAdapter
java.lang.Object
org.keycloak.models.UserModelDefaultMethods
org.keycloak.storage.adapter.AbstractUserAdapter
- All Implemented Interfaces:
- RoleMapperModel,- UserModel
- Direct Known Subclasses:
- AbstractUserAdapter.Streams
This abstract class provides implementations for everything but getUsername().  getId() returns a default value
 of "f:" + providerId + ":" + getUsername().  isEnabled() returns true.  getRoleMappings() will return default roles.
 getGroups() will return default groups.
 All other read methods return null, an empty collection, or false depending
 on the type.  All update methods throw a ReadOnlyException.
 Provider implementors should override the methods for attributes, properties, and mappings they support.
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classTheAbstractUserAdapter.Streamsinterface makes all collection-based methods inAbstractUserAdapterdefault by providing implementations that delegate to theStream-based variants instead of the other way around.Nested classes/interfaces inherited from interface org.keycloak.models.UserModelUserModel.RequiredAction, UserModel.SearchableFields, UserModel.UserRemovedEvent
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected longprotected RealmModelprotected KeycloakSessionprotected StorageIdprotected ComponentModelFields inherited from interface org.keycloak.models.UserModelCOMPARE_BY_USERNAME, DISABLED_REASON, EMAIL, EMAIL_VERIFIED, ENABLED, EXACT, FIRST_NAME, GROUPS, IDP_ALIAS, IDP_USER_ID, INCLUDE_SERVICE_ACCOUNT, LAST_NAME, LOCALE, SEARCH, USERNAME
- 
Constructor SummaryConstructorsConstructorDescriptionAbstractUserAdapter(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddRequiredAction(String action) voidprotected booleanShould the realm's default groups be appended to getGroups() call? If your storage provider is not managing group mappings then it is recommended that this method return trueprotected booleanShould the realm's default roles be appended to getRoleMappings() call? If your storage provider is not managing all role mappings then it is recommended that this method return truevoiddeleteRoleMapping(RoleModel role) Removes the given role mapping from this object.booleangetAttribute(String name) Deprecated.getAttributeStream(String name) Obtains all values associated with the specified attribute name.Deprecated.UsegetClientRoleMappingsStream(ClientModel)insteadReturns stream of client roles that are directly set to this object for the given client.Get timestamp of user creation.getEmail()This method should not be overridengetFirstAttribute(String name) Deprecated.UsegetGroupsStream()insteadprotected Set<GroupModel>Get group membership mappings that are managed by this storage providerObtains the groups associated with the user.getId()Defaults to 'f:' + storageProvider.getId() + ':' + getUsername()Deprecated.UsegetRealmRoleMappingsStream()insteadReturns stream of realm roles that are directly set to this object.Deprecated.Obtains the names of required actions associated with the user.Deprecated.UsegetRoleMappingsStream()insteadReturns stream of all role (both realm all client) that are directly set to this object.This method should not be overridenvoidGrants the given role to this object.inthashCode()booleanReturnstrueif this object is directly or indirectly assigned the given role,falseotherwise.booleanbooleanbooleanisMemberOf(GroupModel group) voidjoinGroup(GroupModel group) voidleaveGroup(GroupModel group) voidremoveAttribute(String name) voidremoveRequiredAction(String action) voidvoidsetAttribute(String name, List<String> values) voidsetCreatedTimestamp(Long timestamp) voidSets email for this user.voidsetEmailVerified(boolean verified) voidsetEnabled(boolean enabled) voidsetFederationLink(String link) This method should not be overridenvoidsetFirstName(String firstName) voidsetLastName(String lastName) voidsetServiceAccountClientLink(String clientInternalId) This method should not be overridenvoidsetSingleAttribute(String name, String value) Set single value of specified attribute.voidsetUsername(String username) Sets username for this user.Methods inherited from class org.keycloak.models.UserModelDefaultMethodstoStringMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.keycloak.models.RoleMapperModelhasDirectRoleMethods inherited from interface org.keycloak.models.UserModelcredentialManager, getGroupsCount, getGroupsCountByNameContaining, getGroupsStream, getUsername
- 
Field Details- 
session
- 
realm
- 
storageProviderModel
- 
storageId
- 
createdprotected long created
 
- 
- 
Constructor Details- 
AbstractUserAdapterpublic AbstractUserAdapter(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel) 
 
- 
- 
Method Details- 
getRequiredActionsDeprecated.
- 
getRequiredActionsStreamDescription copied from interface:UserModelObtains the names of required actions associated with the user.- Returns:
- a non-null Streamof required action names.
 
- 
addRequiredAction
- 
removeRequiredAction
- 
addRequiredAction
- 
removeRequiredAction
- 
getGroupsInternalGet group membership mappings that are managed by this storage provider- Returns:
 
- 
appendDefaultGroupsprotected boolean appendDefaultGroups()Should the realm's default groups be appended to getGroups() call? If your storage provider is not managing group mappings then it is recommended that this method return true- Returns:
 
- 
getGroupsDeprecated.UsegetGroupsStream()instead
- 
getGroupsStreamDescription copied from interface:UserModelObtains the groups associated with the user.- Returns:
- a non-null Streamof groups.
 
- 
joinGroup
- 
leaveGroup
- 
isMemberOf
- 
getRealmRoleMappingsDeprecated.UsegetRealmRoleMappingsStream()instead
- 
getRealmRoleMappingsStreamDescription copied from interface:RoleMapperModelReturns stream of realm roles that are directly set to this object.- Returns:
- Stream of RoleModel. Never returnsnull.
 
- 
getClientRoleMappingsDeprecated.UsegetClientRoleMappingsStream(ClientModel)instead
- 
getClientRoleMappingsStreamDescription copied from interface:RoleMapperModelReturns stream of client roles that are directly set to this object for the given client.- Parameters:
- app-- ClientModelClient to get the roles for.
- Returns:
- Stream of RoleModel. Never returnsnull.
 
- 
hasRoleDescription copied from interface:RoleMapperModelReturnstrueif this object is directly or indirectly assigned the given role,falseotherwise.For example, trueis returned for hasRole(R) if:- R is directly assigned to this object
- R is indirectly assigned to this object via composites
- R is not assigned to this object but this object belongs to a group G which is assigned the role R
- R is not assigned to this object but this object belongs to a group G, and G belongs to group H which is assigned the role R
 - Returns:
- see description
- See Also:
 
- 
grantRoleDescription copied from interface:RoleMapperModelGrants the given role to this object.
- 
appendDefaultRolesToRoleMappingsprotected boolean appendDefaultRolesToRoleMappings()Should the realm's default roles be appended to getRoleMappings() call? If your storage provider is not managing all role mappings then it is recommended that this method return true- Returns:
 
- 
getRoleMappingsInternal
- 
getRoleMappingsDeprecated.UsegetRoleMappingsStream()instead
- 
getRoleMappingsStreamDescription copied from interface:RoleMapperModelReturns stream of all role (both realm all client) that are directly set to this object.- Returns:
- Stream of RoleModel. Never returnsnull.
 
- 
deleteRoleMappingDescription copied from interface:RoleMapperModelRemoves the given role mapping from this object.- Parameters:
- role- Role to remove
 
- 
isEnabledpublic boolean isEnabled()
- 
setEnabledpublic void setEnabled(boolean enabled) 
- 
getFederationLinkThis method should not be overriden- Returns:
 
- 
setFederationLinkThis method should not be overriden
- 
getServiceAccountClientLinkThis method should not be overriden- Returns:
 
- 
setServiceAccountClientLinkThis method should not be overriden
- 
getIdDefaults to 'f:' + storageProvider.getId() + ':' + getUsername()- Returns:
 
- 
setUsernameDescription copied from interface:UserModelSets username for this user. No default method here to allow Abstract subclasses where the username is provided in a different manner- Parameters:
- username- username string
 
- 
getCreatedTimestampDescription copied from interface:UserModelGet timestamp of user creation. May be null for old users created before this feature introduction.
- 
setCreatedTimestamp
- 
setSingleAttributeDescription copied from interface:UserModelSet single value of specified attribute. Remove all other existing values of this attribute
- 
removeAttribute
- 
setAttribute
- 
getFirstAttribute- Returns:
- null if there is not any value of specified attribute or first value otherwise. Don't throw exception if there are more values of the attribute
 
- 
getAttributes
- 
getAttributeDeprecated.UsegetAttributeStream(String)instead
- 
getAttributeStreamDescription copied from interface:UserModelObtains all values associated with the specified attribute name.- Parameters:
- name- the name of the attribute.
- Returns:
- a non-null Streamof attribute values.
 
- 
getFirstName- Specified by:
- getFirstNamein interface- UserModel
- Overrides:
- getFirstNamein class- UserModelDefaultMethods
 
- 
setFirstName- Specified by:
- setFirstNamein interface- UserModel
- Overrides:
- setFirstNamein class- UserModelDefaultMethods
 
- 
getLastName- Specified by:
- getLastNamein interface- UserModel
- Overrides:
- getLastNamein class- UserModelDefaultMethods
 
- 
setLastName- Specified by:
- setLastNamein interface- UserModel
- Overrides:
- setLastNamein class- UserModelDefaultMethods
 
- 
getEmail- Specified by:
- getEmailin interface- UserModel
- Overrides:
- getEmailin class- UserModelDefaultMethods
 
- 
setEmailDescription copied from interface:UserModelSets email for this user.- Specified by:
- setEmailin interface- UserModel
- Overrides:
- setEmailin class- UserModelDefaultMethods
- Parameters:
- email- the email
 
- 
isEmailVerifiedpublic boolean isEmailVerified()
- 
setEmailVerifiedpublic void setEmailVerified(boolean verified) 
- 
equals
- 
hashCodepublic int hashCode()
 
- 
getAttributeStream(String)instead