Package org.keycloak.storage.adapter
Class AbstractUserAdapterFederatedStorage
- java.lang.Object
- 
- org.keycloak.models.UserModelDefaultMethods
- 
- org.keycloak.storage.adapter.AbstractUserAdapterFederatedStorage
 
 
- 
- All Implemented Interfaces:
- RoleMapperModel,- UserModel
 - Direct Known Subclasses:
- AbstractUserAdapterFederatedStorage.Streams
 
 public abstract class AbstractUserAdapterFederatedStorage extends UserModelDefaultMethods Assumes everything is managed by federated storage except for username. getId() returns a default value of "f:" + providerId + ":" + getUsername(). UserModel properties like enabled, firstName, lastName, email, etc. are all stored as attributes in federated storage. isEnabled() defaults to true if the ENABLED_ATTRIBUTE isn't set in federated storage- Version:
- $Revision: 1 $
- Author:
- Bill Burke
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classAbstractUserAdapterFederatedStorage.StreamsTheStreams(org.keycloak.models.KeycloakSession,org.keycloak.models.RealmModel,org.keycloak.component.ComponentModel)interface makes all collection-based methods inAbstractUserAdapterFederatedStoragedefault 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 SummaryFields Modifier and Type Field Description static StringCREATED_TIMESTAMP_ATTRIBUTEstatic StringEMAIL_ATTRIBUTEstatic StringEMAIL_VERIFIED_ATTRIBUTEstatic StringENABLED_ATTRIBUTEstatic StringFIRST_NAME_ATTRIBUTEstatic StringLAST_NAME_ATTRIBUTEprotected RealmModelrealmprotected KeycloakSessionsessionprotected StorageIdstorageIdprotected ComponentModelstorageProviderModel- 
Fields 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 SummaryConstructors Constructor Description AbstractUserAdapterFederatedStorage(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddRequiredAction(String action)voidaddRequiredAction(UserModel.RequiredAction action)protected booleanappendDefaultGroups()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 trueprotected booleanappendDefaultRolesToRoleMappings()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 trueSubjectCredentialManagercredentialManager()Instance of a user credential manager to validate and update the credentials of this user.voiddeleteRoleMapping(RoleModel role)Removes the given role mapping from this object.booleanequals(Object o)List<String>getAttribute(String name)Deprecated.UsegetAttributeStream(String)insteadMap<String,List<String>>getAttributes()Stream<String>getAttributeStream(String name)Obtains all values associated with the specified attribute name.Set<RoleModel>getClientRoleMappings(ClientModel app)Deprecated.UsegetClientRoleMappingsStream(ClientModel)insteadStream<RoleModel>getClientRoleMappingsStream(ClientModel app)Returns stream of client roles that are directly set to this object for the given client.LonggetCreatedTimestamp()Get timestamp of user creation.protected Set<RoleModel>getFederatedRoleMappings()UserFederatedStorageProvidergetFederatedStorage()StringgetFederationLink()This method should not be overridenStringgetFirstAttribute(String name)Set<GroupModel>getGroups()Deprecated.UsegetGroupsStream()insteadprotected Set<GroupModel>getGroupsInternal()Get group membership mappings that are managed by this storage providerStream<GroupModel>getGroupsStream()Obtains the groups associated with the user.StringgetId()Defaults to 'f:' + storageProvider.getId() + ':' + getUsername()Set<RoleModel>getRealmRoleMappings()Deprecated.UsegetRealmRoleMappingsStream()insteadStream<RoleModel>getRealmRoleMappingsStream()Returns stream of realm roles that are directly set to this object.Set<String>getRequiredActions()Deprecated.UsegetRequiredActionsStream()insteadStream<String>getRequiredActionsStream()Obtains the names of required actions associated with the user.Set<RoleModel>getRoleMappings()Deprecated.UsegetRoleMappingsStream()insteadprotected Set<RoleModel>getRoleMappingsInternal()Stream<RoleModel>getRoleMappingsStream()Returns stream of all role (both realm all client) that are directly set to this object.StringgetServiceAccountClientLink()This method should not be overridenvoidgrantRole(RoleModel role)Grants the given role to this object.inthashCode()booleanhasRole(RoleModel role)Returnstrueif this object is directly or indirectly assigned the given role,falseotherwise.booleanisEmailVerified()booleanisEnabled()booleanisMemberOf(GroupModel group)voidjoinGroup(GroupModel group)voidleaveGroup(GroupModel group)protected StringmapAttribute(String attributeName)voidremoveAttribute(String name)voidremoveRequiredAction(String action)voidremoveRequiredAction(UserModel.RequiredAction action)voidsetAttribute(String name, List<String> values)voidsetCreatedTimestamp(Long timestamp)voidsetEmailVerified(boolean verified)Stores as attribute in federated storage.voidsetEnabled(boolean enabled)voidsetFederationLink(String link)This method should not be overridenvoidsetServiceAccountClientLink(String clientInternalId)This method should not be overridenvoidsetSingleAttribute(String name, String value)Set single value of specified attribute.- 
Methods inherited from class org.keycloak.models.UserModelDefaultMethodsgetEmail, getFirstName, getLastName, setEmail, setFirstName, setLastName, toString
 - 
Methods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface org.keycloak.models.RoleMapperModelhasDirectRole
 - 
Methods inherited from interface org.keycloak.models.UserModelgetGroupsCount, getGroupsCountByNameContaining, getGroupsStream, getUsername, setUsername
 
- 
 
- 
- 
- 
Field Detail- 
FIRST_NAME_ATTRIBUTEpublic static String FIRST_NAME_ATTRIBUTE 
 - 
LAST_NAME_ATTRIBUTEpublic static String LAST_NAME_ATTRIBUTE 
 - 
EMAIL_ATTRIBUTEpublic static String EMAIL_ATTRIBUTE 
 - 
EMAIL_VERIFIED_ATTRIBUTEpublic static String EMAIL_VERIFIED_ATTRIBUTE 
 - 
CREATED_TIMESTAMP_ATTRIBUTEpublic static String CREATED_TIMESTAMP_ATTRIBUTE 
 - 
ENABLED_ATTRIBUTEpublic static String ENABLED_ATTRIBUTE 
 - 
sessionprotected KeycloakSession session 
 - 
realmprotected RealmModel realm 
 - 
storageProviderModelprotected ComponentModel storageProviderModel 
 - 
storageIdprotected StorageId storageId 
 
- 
 - 
Constructor Detail- 
AbstractUserAdapterFederatedStoragepublic AbstractUserAdapterFederatedStorage(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel) 
 
- 
 - 
Method Detail- 
getFederatedStoragepublic UserFederatedStorageProvider getFederatedStorage() 
 - 
getRequiredActionspublic Set<String> getRequiredActions() Deprecated.UsegetRequiredActionsStream()instead
 - 
getRequiredActionsStreampublic Stream<String> getRequiredActionsStream() Description copied from interface:UserModelObtains the names of required actions associated with the user.- Returns:
- a non-null Streamof required action names.
 
 - 
addRequiredActionpublic void addRequiredAction(String action) 
 - 
removeRequiredActionpublic void removeRequiredAction(String action) 
 - 
addRequiredActionpublic void addRequiredAction(UserModel.RequiredAction action) 
 - 
removeRequiredActionpublic void removeRequiredAction(UserModel.RequiredAction action) 
 - 
getGroupsInternalprotected Set<GroupModel> getGroupsInternal() Get 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:
 
 - 
getGroupspublic Set<GroupModel> getGroups() Deprecated.UsegetGroupsStream()insteadGets groups from federated storage and automatically appends default groups of realm. Also calls getGroupsInternal() method to pull group membership from provider. Implementors can override that method- Returns:
 
 - 
getGroupsStreampublic Stream<GroupModel> getGroupsStream() Description copied from interface:UserModelObtains the groups associated with the user.- Returns:
- a non-null Streamof groups.
 
 - 
joinGrouppublic void joinGroup(GroupModel group) 
 - 
leaveGrouppublic void leaveGroup(GroupModel group) 
 - 
isMemberOfpublic boolean isMemberOf(GroupModel group) 
 - 
getRealmRoleMappingspublic Set<RoleModel> getRealmRoleMappings() Deprecated.UsegetRealmRoleMappingsStream()insteadGets role mappings from federated storage and automatically appends default roles. Also calls getRoleMappingsInternal() method to pull role mappings from provider. Implementors can override that method- Returns:
 
 - 
getRealmRoleMappingsStreampublic Stream<RoleModel> getRealmRoleMappingsStream() Description copied from interface:RoleMapperModelReturns stream of realm roles that are directly set to this object.- Returns:
- Stream of RoleModel. Never returnsnull.
 
 - 
getClientRoleMappingspublic Set<RoleModel> getClientRoleMappings(ClientModel app) Deprecated.UsegetClientRoleMappingsStream(ClientModel)insteadGets role mappings from federated storage and automatically appends default roles. Also calls getRoleMappingsInternal() method to pull role mappings from provider. Implementors can override that method- Returns:
 
 - 
getClientRoleMappingsStreampublic Stream<RoleModel> getClientRoleMappingsStream(ClientModel app) Description 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.
 
 - 
hasRolepublic boolean hasRole(RoleModel role) Description 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:
- if you want to check if this object is directly assigned to a role
 
 - 
grantRolepublic void grantRole(RoleModel role) Description 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:
 
 - 
getRoleMappingspublic Set<RoleModel> getRoleMappings() Deprecated.UsegetRoleMappingsStream()insteadGets role mappings from federated storage and automatically appends default roles. Also calls getRoleMappingsInternal() method to pull role mappings from provider. Implementors can override that method- Returns:
 
 - 
getRoleMappingsStreampublic Stream<RoleModel> getRoleMappingsStream() Description 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.
 
 - 
deleteRoleMappingpublic void deleteRoleMapping(RoleModel role) Description copied from interface:RoleMapperModelRemoves the given role mapping from this object.- Parameters:
- role- Role to remove
 
 - 
isEnabledpublic boolean isEnabled() 
 - 
setEnabledpublic void setEnabled(boolean enabled) 
 - 
getFederationLinkpublic String getFederationLink() This method should not be overriden- Returns:
 
 - 
setFederationLinkpublic void setFederationLink(String link) This method should not be overriden
 - 
getServiceAccountClientLinkpublic String getServiceAccountClientLink() This method should not be overriden- Returns:
 
 - 
setServiceAccountClientLinkpublic void setServiceAccountClientLink(String clientInternalId) This method should not be overriden
 - 
getIdpublic String getId() Defaults to 'f:' + storageProvider.getId() + ':' + getUsername()- Returns:
 
 - 
getCreatedTimestamppublic Long getCreatedTimestamp() Description copied from interface:UserModelGet timestamp of user creation. May be null for old users created before this feature introduction.
 - 
setCreatedTimestamppublic void setCreatedTimestamp(Long timestamp) 
 - 
setSingleAttributepublic void setSingleAttribute(String name, String value) Description copied from interface:UserModelSet single value of specified attribute. Remove all other existing values of this attribute
 - 
removeAttributepublic void removeAttribute(String name) 
 - 
getFirstAttributepublic String getFirstAttribute(String name) - 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
 
 - 
getAttributepublic List<String> getAttribute(String name) Deprecated.UsegetAttributeStream(String)instead
 - 
getAttributeStreampublic Stream<String> getAttributeStream(String name) Description 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.
 
 - 
isEmailVerifiedpublic boolean isEmailVerified() 
 - 
setEmailVerifiedpublic void setEmailVerified(boolean verified) Stores as attribute in federated storage. EMAIL_VERIFIED_ATTRIBUTE- Parameters:
- verified-
 
 - 
credentialManagerpublic SubjectCredentialManager credentialManager() Description copied from interface:UserModelInstance of a user credential manager to validate and update the credentials of this user.
 
- 
 
-