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 Summary
Modifier and TypeClassDescriptionstatic class
TheAbstractUserAdapter.Streams
interface makes all collection-based methods inAbstractUserAdapter
default by providing implementations that delegate to theStream
-based variants instead of the other way around.Nested classes/interfaces inherited from interface org.keycloak.models.UserModel
UserModel.RequiredAction, UserModel.SearchableFields, UserModel.UserRemovedEvent
-
Field Summary
Modifier and TypeFieldDescriptionprotected long
protected RealmModel
protected KeycloakSession
protected StorageId
protected ComponentModel
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
ConstructorDescriptionAbstractUserAdapter
(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addRequiredAction
(String action) void
protected boolean
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 boolean
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 truevoid
deleteRoleMapping
(RoleModel role) Removes the given role mapping from this object.boolean
getAttribute
(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 overridenvoid
Grants the given role to this object.int
hashCode()
boolean
Returnstrue
if this object is directly or indirectly assigned the given role,false
otherwise.boolean
boolean
boolean
isMemberOf
(GroupModel group) void
joinGroup
(GroupModel group) void
leaveGroup
(GroupModel group) void
removeAttribute
(String name) void
removeRequiredAction
(String action) void
void
setAttribute
(String name, List<String> values) void
setCreatedTimestamp
(Long timestamp) void
Sets email for this user.void
setEmailVerified
(boolean verified) void
setEnabled
(boolean enabled) void
setFederationLink
(String link) This method should not be overridenvoid
setFirstName
(String firstName) void
setLastName
(String lastName) void
setServiceAccountClientLink
(String clientInternalId) This method should not be overridenvoid
setSingleAttribute
(String name, String value) Set single value of specified attribute.void
setUsername
(String username) Sets username for this user.Methods inherited from class org.keycloak.models.UserModelDefaultMethods
toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.keycloak.models.RoleMapperModel
hasDirectRole
Methods inherited from interface org.keycloak.models.UserModel
credentialManager, getGroupsCount, getGroupsCountByNameContaining, getGroupsStream, getUsername
-
Field Details
-
session
-
realm
-
storageProviderModel
-
storageId
-
created
protected long created
-
-
Constructor Details
-
AbstractUserAdapter
public AbstractUserAdapter(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel)
-
-
Method Details
-
getRequiredActions
Deprecated. -
getRequiredActionsStream
Description copied from interface:UserModel
Obtains the names of required actions associated with the user.- Returns:
- a non-null
Stream
of required action names.
-
addRequiredAction
-
removeRequiredAction
-
addRequiredAction
-
removeRequiredAction
-
getGroupsInternal
Get group membership mappings that are managed by this storage provider- Returns:
-
appendDefaultGroups
protected 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:
-
getGroups
Deprecated.UsegetGroupsStream()
instead -
getGroupsStream
Description copied from interface:UserModel
Obtains the groups associated with the user.- Returns:
- a non-null
Stream
of groups.
-
joinGroup
-
leaveGroup
-
isMemberOf
-
getRealmRoleMappings
Deprecated.UsegetRealmRoleMappingsStream()
instead -
getRealmRoleMappingsStream
Description copied from interface:RoleMapperModel
Returns stream of realm roles that are directly set to this object.- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
getClientRoleMappings
Deprecated.UsegetClientRoleMappingsStream(ClientModel)
instead -
getClientRoleMappingsStream
Description copied from interface:RoleMapperModel
Returns stream of client roles that are directly set to this object for the given client.- Parameters:
app
-ClientModel
Client to get the roles for.- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
hasRole
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
- Returns:
- see description
- See Also:
-
grantRole
Description copied from interface:RoleMapperModel
Grants the given role to this object. -
appendDefaultRolesToRoleMappings
protected 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
-
getRoleMappings
Deprecated.UsegetRoleMappingsStream()
instead -
getRoleMappingsStream
Description copied from interface:RoleMapperModel
Returns stream of all role (both realm all client) that are directly set to this object.- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
deleteRoleMapping
Description copied from interface:RoleMapperModel
Removes the given role mapping from this object.- Parameters:
role
- Role to remove
-
isEnabled
public boolean isEnabled() -
setEnabled
public void setEnabled(boolean enabled) -
getFederationLink
This method should not be overriden- Returns:
-
setFederationLink
This method should not be overriden -
getServiceAccountClientLink
This method should not be overriden- Returns:
-
setServiceAccountClientLink
This method should not be overriden -
getId
Defaults to 'f:' + storageProvider.getId() + ':' + getUsername()- Returns:
-
setUsername
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- Parameters:
username
- username string
-
getCreatedTimestamp
Description copied from interface:UserModel
Get timestamp of user creation. May be null for old users created before this feature introduction. -
setCreatedTimestamp
-
setSingleAttribute
Description copied from interface:UserModel
Set 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
-
getAttribute
Deprecated.UsegetAttributeStream(String)
instead -
getAttributeStream
Description copied from interface:UserModel
Obtains all values associated with the specified attribute name.- Parameters:
name
- the name of the attribute.- Returns:
- a non-null
Stream
of attribute values.
-
getFirstName
- Specified by:
getFirstName
in interfaceUserModel
- Overrides:
getFirstName
in classUserModelDefaultMethods
-
setFirstName
- Specified by:
setFirstName
in interfaceUserModel
- Overrides:
setFirstName
in classUserModelDefaultMethods
-
getLastName
- Specified by:
getLastName
in interfaceUserModel
- Overrides:
getLastName
in classUserModelDefaultMethods
-
setLastName
- Specified by:
setLastName
in interfaceUserModel
- Overrides:
setLastName
in classUserModelDefaultMethods
-
getEmail
- Specified by:
getEmail
in interfaceUserModel
- Overrides:
getEmail
in classUserModelDefaultMethods
-
setEmail
Description copied from interface:UserModel
Sets email for this user.- Specified by:
setEmail
in interfaceUserModel
- Overrides:
setEmail
in classUserModelDefaultMethods
- Parameters:
email
- the email
-
isEmailVerified
public boolean isEmailVerified() -
setEmailVerified
public void setEmailVerified(boolean verified) -
equals
-
hashCode
public int hashCode()
-
getAttributeStream(String)
instead