Class UserAdapter
- java.lang.Object
-
- org.keycloak.models.cache.infinispan.UserAdapter
-
- All Implemented Interfaces:
CachedUserModel,RoleMapperModel,UserModel
public class UserAdapter extends Object implements CachedUserModel
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.keycloak.models.cache.CachedUserModel
CachedUserModel.Streams
-
Nested classes/interfaces inherited from interface org.keycloak.models.UserModel
UserModel.RequiredAction, UserModel.SearchableFields, UserModel.UserRemovedEvent
-
-
Field Summary
Fields Modifier and Type Field Description protected CachedUsercachedprotected KeycloakSessionkeycloakSessionprotected RealmModelrealmprotected UserModelupdatedprotected UserCacheSessionuserProviderCache-
Fields inherited from interface org.keycloak.models.UserModel
COMPARE_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 Summary
Constructors Constructor Description UserAdapter(CachedUser cached, UserCacheSession userProvider, KeycloakSession keycloakSession, RealmModel realm)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRequiredAction(String action)voidaddRequiredAction(UserModel.RequiredAction action)SubjectCredentialManagercredentialManager()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)Map<String,List<String>>getAttributes()Stream<String>getAttributeStream(String name)Obtains all values associated with the specified attribute name.ConcurrentHashMapgetCachedWith()Returns a map that contains custom things that are cached along with this model.longgetCacheTimestamp()When was the model was loaded from database.Stream<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.UserModelgetDelegateForUpdate()Invalidates the cache for this user and returns a delegate that represents the actual data providerStringgetEmail()StringgetFederationLink()StringgetFirstAttribute(String name)StringgetFirstName()longgetGroupsCountByNameContaining(String search)Stream<GroupModel>getGroupsStream()Obtains the groups associated with the user.StringgetId()StringgetLastName()Stream<RoleModel>getRealmRoleMappingsStream()Returns stream of realm roles that are directly set to this object.Stream<String>getRequiredActionsStream()Obtains the names of required actions associated with the user.Stream<RoleModel>getRoleMappingsStream()Returns stream of all role (both realm all client) that are directly set to this object.StringgetServiceAccountClientLink()StringgetUsername()voidgrantRole(RoleModel role)Grants the given role to this object.booleanhasDirectRole(RoleModel role)Returnstrue, if this object is directly assigned the given role.inthashCode()booleanhasRole(RoleModel role)Returnstrueif this object is directly or indirectly assigned the given role,falseotherwise.voidinvalidate()Invalidate the cache for this modelbooleanisEmailVerified()booleanisEnabled()booleanisMarkedForEviction()booleanisMemberOf(GroupModel group)voidjoinGroup(GroupModel group)voidleaveGroup(GroupModel group)voidremoveAttribute(String name)voidremoveRequiredAction(String action)voidremoveRequiredAction(UserModel.RequiredAction action)voidsetAttribute(String name, List<String> values)voidsetCreatedTimestamp(Long timestamp)voidsetEmail(String email)Sets email for this user.voidsetEmailVerified(boolean verified)voidsetEnabled(boolean enabled)voidsetFederationLink(String link)voidsetFirstName(String firstName)voidsetLastName(String lastName)voidsetServiceAccountClientLink(String clientInternalId)voidsetSingleAttribute(String name, String value)Set single value of specified attribute.voidsetUsername(String username)Sets username for this user.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.keycloak.models.UserModel
getGroupsCount, getGroupsStream
-
-
-
-
Field Detail
-
cached
protected final CachedUser cached
-
userProviderCache
protected final UserCacheSession userProviderCache
-
keycloakSession
protected final KeycloakSession keycloakSession
-
realm
protected final RealmModel realm
-
updated
protected volatile UserModel updated
-
-
Constructor Detail
-
UserAdapter
public UserAdapter(CachedUser cached, UserCacheSession userProvider, KeycloakSession keycloakSession, RealmModel realm)
-
-
Method Detail
-
getFirstName
public String getFirstName()
- Specified by:
getFirstNamein interfaceUserModel
-
setFirstName
public void setFirstName(String firstName)
- Specified by:
setFirstNamein interfaceUserModel
-
getLastName
public String getLastName()
- Specified by:
getLastNamein interfaceUserModel
-
setLastName
public void setLastName(String lastName)
- Specified by:
setLastNamein interfaceUserModel
-
setEmail
public void setEmail(String email)
Description copied from interface:UserModelSets email for this user.
-
getDelegateForUpdate
public UserModel getDelegateForUpdate()
Description copied from interface:CachedUserModelInvalidates the cache for this user and returns a delegate that represents the actual data provider- Specified by:
getDelegateForUpdatein interfaceCachedUserModel- Returns:
-
isMarkedForEviction
public boolean isMarkedForEviction()
- Specified by:
isMarkedForEvictionin interfaceCachedUserModel
-
invalidate
public void invalidate()
Description copied from interface:CachedUserModelInvalidate the cache for this model- Specified by:
invalidatein interfaceCachedUserModel
-
getCacheTimestamp
public long getCacheTimestamp()
Description copied from interface:CachedUserModelWhen was the model was loaded from database.- Specified by:
getCacheTimestampin interfaceCachedUserModel- Returns:
-
getCachedWith
public ConcurrentHashMap getCachedWith()
Description copied from interface:CachedUserModelReturns a map that contains custom things that are cached along with this model. You can write to this map.- Specified by:
getCachedWithin interfaceCachedUserModel- Returns:
-
getUsername
public String getUsername()
- Specified by:
getUsernamein interfaceUserModel
-
setUsername
public void setUsername(String username)
Description 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- Specified by:
setUsernamein interfaceUserModel- Parameters:
username- username string
-
getCreatedTimestamp
public Long getCreatedTimestamp()
Description copied from interface:UserModelGet timestamp of user creation. May be null for old users created before this feature introduction.- Specified by:
getCreatedTimestampin interfaceUserModel
-
setCreatedTimestamp
public void setCreatedTimestamp(Long timestamp)
- Specified by:
setCreatedTimestampin interfaceUserModel
-
setEnabled
public void setEnabled(boolean enabled)
- Specified by:
setEnabledin interfaceUserModel
-
setSingleAttribute
public void setSingleAttribute(String name, String value)
Description copied from interface:UserModelSet single value of specified attribute. Remove all other existing values of this attribute- Specified by:
setSingleAttributein interfaceUserModel
-
setAttribute
public void setAttribute(String name, List<String> values)
- Specified by:
setAttributein interfaceUserModel
-
removeAttribute
public void removeAttribute(String name)
- Specified by:
removeAttributein interfaceUserModel
-
getFirstAttribute
public String getFirstAttribute(String name)
- Specified by:
getFirstAttributein interfaceUserModel- 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
-
getAttributeStream
public Stream<String> getAttributeStream(String name)
Description copied from interface:UserModelObtains all values associated with the specified attribute name.- Specified by:
getAttributeStreamin interfaceUserModel- Parameters:
name- the name of the attribute.- Returns:
- a non-null
Streamof attribute values.
-
getAttributes
public Map<String,List<String>> getAttributes()
- Specified by:
getAttributesin interfaceUserModel
-
getRequiredActionsStream
public Stream<String> getRequiredActionsStream()
Description copied from interface:UserModelObtains the names of required actions associated with the user.- Specified by:
getRequiredActionsStreamin interfaceUserModel- Returns:
- a non-null
Streamof required action names.
-
addRequiredAction
public void addRequiredAction(UserModel.RequiredAction action)
- Specified by:
addRequiredActionin interfaceUserModel
-
removeRequiredAction
public void removeRequiredAction(UserModel.RequiredAction action)
- Specified by:
removeRequiredActionin interfaceUserModel
-
addRequiredAction
public void addRequiredAction(String action)
- Specified by:
addRequiredActionin interfaceUserModel
-
removeRequiredAction
public void removeRequiredAction(String action)
- Specified by:
removeRequiredActionin interfaceUserModel
-
isEmailVerified
public boolean isEmailVerified()
- Specified by:
isEmailVerifiedin interfaceUserModel
-
setEmailVerified
public void setEmailVerified(boolean verified)
- Specified by:
setEmailVerifiedin interfaceUserModel
-
getFederationLink
public String getFederationLink()
- Specified by:
getFederationLinkin interfaceUserModel
-
setFederationLink
public void setFederationLink(String link)
- Specified by:
setFederationLinkin interfaceUserModel
-
getServiceAccountClientLink
public String getServiceAccountClientLink()
- Specified by:
getServiceAccountClientLinkin interfaceUserModel
-
setServiceAccountClientLink
public void setServiceAccountClientLink(String clientInternalId)
- Specified by:
setServiceAccountClientLinkin interfaceUserModel
-
credentialManager
public SubjectCredentialManager credentialManager()
Description copied from interface:UserModelInstance of a user credential manager to validate and update the credentials of this user.- Specified by:
credentialManagerin interfaceUserModel
-
getRealmRoleMappingsStream
public Stream<RoleModel> getRealmRoleMappingsStream()
Description copied from interface:RoleMapperModelReturns stream of realm roles that are directly set to this object.- Specified by:
getRealmRoleMappingsStreamin interfaceRoleMapperModel- Returns:
- Stream of
RoleModel. Never returnsnull.
-
getClientRoleMappingsStream
public 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.- Specified by:
getClientRoleMappingsStreamin interfaceRoleMapperModel- Parameters:
app-ClientModelClient to get the roles for.- Returns:
- Stream of
RoleModel. Never returnsnull.
-
hasDirectRole
public boolean hasDirectRole(RoleModel role)
Description copied from interface:RoleMapperModelReturnstrue, if this object is directly assigned the given role.- Specified by:
hasDirectRolein interfaceRoleMapperModel- Parameters:
role- the role- Returns:
- see description
- See Also:
if you want to check whether this object is directly or indirectly assigned to a role
-
hasRole
public 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
- Specified by:
hasRolein interfaceRoleMapperModel- Returns:
- see description
- See Also:
if you want to check if this object is directly assigned to a role
-
grantRole
public void grantRole(RoleModel role)
Description copied from interface:RoleMapperModelGrants the given role to this object.- Specified by:
grantRolein interfaceRoleMapperModel
-
getRoleMappingsStream
public Stream<RoleModel> getRoleMappingsStream()
Description copied from interface:RoleMapperModelReturns stream of all role (both realm all client) that are directly set to this object.- Specified by:
getRoleMappingsStreamin interfaceRoleMapperModel- Returns:
- Stream of
RoleModel. Never returnsnull.
-
deleteRoleMapping
public void deleteRoleMapping(RoleModel role)
Description copied from interface:RoleMapperModelRemoves the given role mapping from this object.- Specified by:
deleteRoleMappingin interfaceRoleMapperModel- Parameters:
role- Role to remove
-
getGroupsStream
public Stream<GroupModel> getGroupsStream()
Description copied from interface:UserModelObtains the groups associated with the user.- Specified by:
getGroupsStreamin interfaceUserModel- Returns:
- a non-null
Streamof groups.
-
getGroupsCountByNameContaining
public long getGroupsCountByNameContaining(String search)
- Specified by:
getGroupsCountByNameContainingin interfaceUserModel
-
joinGroup
public void joinGroup(GroupModel group)
-
leaveGroup
public void leaveGroup(GroupModel group)
- Specified by:
leaveGroupin interfaceUserModel
-
isMemberOf
public boolean isMemberOf(GroupModel group)
- Specified by:
isMemberOfin interfaceUserModel
-
-