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 CachedUser
cached
protected KeycloakSession
keycloakSession
protected RealmModel
realm
protected UserModel
updated
protected UserCacheSession
userProviderCache
-
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 void
addRequiredAction(String action)
void
addRequiredAction(UserModel.RequiredAction action)
SubjectCredentialManager
credentialManager()
Instance of a user credential manager to validate and update the credentials of this user.void
deleteRoleMapping(RoleModel role)
Removes the given role mapping from this object.boolean
equals(Object o)
Map<String,List<String>>
getAttributes()
Stream<String>
getAttributeStream(String name)
Obtains all values associated with the specified attribute name.ConcurrentHashMap
getCachedWith()
Returns a map that contains custom things that are cached along with this model.long
getCacheTimestamp()
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.Long
getCreatedTimestamp()
Get timestamp of user creation.UserModel
getDelegateForUpdate()
Invalidates the cache for this user and returns a delegate that represents the actual data providerString
getEmail()
String
getFederationLink()
String
getFirstAttribute(String name)
String
getFirstName()
long
getGroupsCountByNameContaining(String search)
Stream<GroupModel>
getGroupsStream()
Obtains the groups associated with the user.String
getId()
String
getLastName()
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.String
getServiceAccountClientLink()
String
getUsername()
void
grantRole(RoleModel role)
Grants the given role to this object.boolean
hasDirectRole(RoleModel role)
Returnstrue
, if this object is directly assigned the given role.int
hashCode()
boolean
hasRole(RoleModel role)
Returnstrue
if this object is directly or indirectly assigned the given role,false
otherwise.void
invalidate()
Invalidate the cache for this modelboolean
isEmailVerified()
boolean
isEnabled()
boolean
isMarkedForEviction()
boolean
isMemberOf(GroupModel group)
void
joinGroup(GroupModel group)
void
leaveGroup(GroupModel group)
void
removeAttribute(String name)
void
removeRequiredAction(String action)
void
removeRequiredAction(UserModel.RequiredAction action)
void
setAttribute(String name, List<String> values)
void
setCreatedTimestamp(Long timestamp)
void
setEmail(String email)
Sets email for this user.void
setEmailVerified(boolean verified)
void
setEnabled(boolean enabled)
void
setFederationLink(String link)
void
setFirstName(String firstName)
void
setLastName(String lastName)
void
setServiceAccountClientLink(String clientInternalId)
void
setSingleAttribute(String name, String value)
Set single value of specified attribute.void
setUsername(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:
getFirstName
in interfaceUserModel
-
setFirstName
public void setFirstName(String firstName)
- Specified by:
setFirstName
in interfaceUserModel
-
getLastName
public String getLastName()
- Specified by:
getLastName
in interfaceUserModel
-
setLastName
public void setLastName(String lastName)
- Specified by:
setLastName
in interfaceUserModel
-
setEmail
public void setEmail(String email)
Description copied from interface:UserModel
Sets email for this user.
-
getDelegateForUpdate
public UserModel getDelegateForUpdate()
Description copied from interface:CachedUserModel
Invalidates the cache for this user and returns a delegate that represents the actual data provider- Specified by:
getDelegateForUpdate
in interfaceCachedUserModel
- Returns:
-
isMarkedForEviction
public boolean isMarkedForEviction()
- Specified by:
isMarkedForEviction
in interfaceCachedUserModel
-
invalidate
public void invalidate()
Description copied from interface:CachedUserModel
Invalidate the cache for this model- Specified by:
invalidate
in interfaceCachedUserModel
-
getCacheTimestamp
public long getCacheTimestamp()
Description copied from interface:CachedUserModel
When was the model was loaded from database.- Specified by:
getCacheTimestamp
in interfaceCachedUserModel
- Returns:
-
getCachedWith
public ConcurrentHashMap getCachedWith()
Description copied from interface:CachedUserModel
Returns a map that contains custom things that are cached along with this model. You can write to this map.- Specified by:
getCachedWith
in interfaceCachedUserModel
- Returns:
-
getUsername
public String getUsername()
- Specified by:
getUsername
in interfaceUserModel
-
setUsername
public void setUsername(String username)
Description copied from interface:UserModel
Sets username for this user. No default method here to allow Abstract subclasses where the username is provided in a different manner- Specified by:
setUsername
in interfaceUserModel
- Parameters:
username
- username string
-
getCreatedTimestamp
public Long getCreatedTimestamp()
Description copied from interface:UserModel
Get timestamp of user creation. May be null for old users created before this feature introduction.- Specified by:
getCreatedTimestamp
in interfaceUserModel
-
setCreatedTimestamp
public void setCreatedTimestamp(Long timestamp)
- Specified by:
setCreatedTimestamp
in interfaceUserModel
-
setEnabled
public void setEnabled(boolean enabled)
- Specified by:
setEnabled
in interfaceUserModel
-
setSingleAttribute
public void setSingleAttribute(String name, String value)
Description copied from interface:UserModel
Set single value of specified attribute. Remove all other existing values of this attribute- Specified by:
setSingleAttribute
in interfaceUserModel
-
setAttribute
public void setAttribute(String name, List<String> values)
- Specified by:
setAttribute
in interfaceUserModel
-
removeAttribute
public void removeAttribute(String name)
- Specified by:
removeAttribute
in interfaceUserModel
-
getFirstAttribute
public String getFirstAttribute(String name)
- Specified by:
getFirstAttribute
in 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:UserModel
Obtains all values associated with the specified attribute name.- Specified by:
getAttributeStream
in interfaceUserModel
- Parameters:
name
- the name of the attribute.- Returns:
- a non-null
Stream
of attribute values.
-
getAttributes
public Map<String,List<String>> getAttributes()
- Specified by:
getAttributes
in interfaceUserModel
-
getRequiredActionsStream
public Stream<String> getRequiredActionsStream()
Description copied from interface:UserModel
Obtains the names of required actions associated with the user.- Specified by:
getRequiredActionsStream
in interfaceUserModel
- Returns:
- a non-null
Stream
of required action names.
-
addRequiredAction
public void addRequiredAction(UserModel.RequiredAction action)
- Specified by:
addRequiredAction
in interfaceUserModel
-
removeRequiredAction
public void removeRequiredAction(UserModel.RequiredAction action)
- Specified by:
removeRequiredAction
in interfaceUserModel
-
addRequiredAction
public void addRequiredAction(String action)
- Specified by:
addRequiredAction
in interfaceUserModel
-
removeRequiredAction
public void removeRequiredAction(String action)
- Specified by:
removeRequiredAction
in interfaceUserModel
-
isEmailVerified
public boolean isEmailVerified()
- Specified by:
isEmailVerified
in interfaceUserModel
-
setEmailVerified
public void setEmailVerified(boolean verified)
- Specified by:
setEmailVerified
in interfaceUserModel
-
getFederationLink
public String getFederationLink()
- Specified by:
getFederationLink
in interfaceUserModel
-
setFederationLink
public void setFederationLink(String link)
- Specified by:
setFederationLink
in interfaceUserModel
-
getServiceAccountClientLink
public String getServiceAccountClientLink()
- Specified by:
getServiceAccountClientLink
in interfaceUserModel
-
setServiceAccountClientLink
public void setServiceAccountClientLink(String clientInternalId)
- Specified by:
setServiceAccountClientLink
in interfaceUserModel
-
credentialManager
public SubjectCredentialManager credentialManager()
Description copied from interface:UserModel
Instance of a user credential manager to validate and update the credentials of this user.- Specified by:
credentialManager
in interfaceUserModel
-
getRealmRoleMappingsStream
public Stream<RoleModel> getRealmRoleMappingsStream()
Description copied from interface:RoleMapperModel
Returns stream of realm roles that are directly set to this object.- Specified by:
getRealmRoleMappingsStream
in interfaceRoleMapperModel
- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
getClientRoleMappingsStream
public Stream<RoleModel> getClientRoleMappingsStream(ClientModel app)
Description copied from interface:RoleMapperModel
Returns stream of client roles that are directly set to this object for the given client.- Specified by:
getClientRoleMappingsStream
in interfaceRoleMapperModel
- Parameters:
app
-ClientModel
Client to get the roles for.- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
hasDirectRole
public boolean hasDirectRole(RoleModel role)
Description copied from interface:RoleMapperModel
Returnstrue
, if this object is directly assigned the given role.- Specified by:
hasDirectRole
in 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:RoleMapperModel
Returnstrue
if this object is directly or indirectly assigned the given role,false
otherwise.For example,
true
is 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:
hasRole
in 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:RoleMapperModel
Grants the given role to this object.- Specified by:
grantRole
in interfaceRoleMapperModel
-
getRoleMappingsStream
public Stream<RoleModel> getRoleMappingsStream()
Description copied from interface:RoleMapperModel
Returns stream of all role (both realm all client) that are directly set to this object.- Specified by:
getRoleMappingsStream
in interfaceRoleMapperModel
- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
deleteRoleMapping
public void deleteRoleMapping(RoleModel role)
Description copied from interface:RoleMapperModel
Removes the given role mapping from this object.- Specified by:
deleteRoleMapping
in interfaceRoleMapperModel
- Parameters:
role
- Role to remove
-
getGroupsStream
public Stream<GroupModel> getGroupsStream()
Description copied from interface:UserModel
Obtains the groups associated with the user.- Specified by:
getGroupsStream
in interfaceUserModel
- Returns:
- a non-null
Stream
of groups.
-
getGroupsCountByNameContaining
public long getGroupsCountByNameContaining(String search)
- Specified by:
getGroupsCountByNameContaining
in interfaceUserModel
-
joinGroup
public void joinGroup(GroupModel group)
-
leaveGroup
public void leaveGroup(GroupModel group)
- Specified by:
leaveGroup
in interfaceUserModel
-
isMemberOf
public boolean isMemberOf(GroupModel group)
- Specified by:
isMemberOf
in interfaceUserModel
-
-