Package org.keycloak.models.jpa
Class UserAdapter
- java.lang.Object
-
- org.keycloak.models.jpa.UserAdapter
-
- All Implemented Interfaces:
JpaModel<UserEntity>,RoleMapperModel,UserModel
public class UserAdapter extends Object implements UserModel, JpaModel<UserEntity>
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.keycloak.models.UserModel
UserModel.RequiredAction, UserModel.SearchableFields, UserModel.Streams, UserModel.UserRemovedEvent
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.persistence.EntityManageremprotected RealmModelrealmprotected UserEntityuser-
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(KeycloakSession session, RealmModel realm, javax.persistence.EntityManager em, UserEntity user)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRequiredAction(String actionName)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.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.StringgetEmail()UserEntitygetEntity()StringgetFederationLink()StringgetFirstAttribute(String name)StringgetFirstName()longgetGroupsCount()longgetGroupsCountByNameContaining(String search)Stream<GroupModel>getGroupsStream()Obtains the groups associated with the user.Stream<GroupModel>getGroupsStream(String search, Integer first, Integer max)Returns a paginated stream of groups within this realm with search in the nameStringgetId()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()protected javax.persistence.TypedQuery<UserGroupMembershipEntity>getUserGroupMappingQuery(GroupModel group)StringgetUsername()protected javax.persistence.TypedQuery<UserRoleMappingEntity>getUserRoleMappingEntityTypedQuery(RoleModel role)voidgrantRole(RoleModel role)Grants the given role to this object.voidgrantRoleImpl(RoleModel role)inthashCode()booleanhasRole(RoleModel role)Returnstrueif this object is directly or indirectly assigned the given role,falseotherwise.booleanisEmailVerified()booleanisEnabled()booleanisMemberOf(GroupModel group)voidjoinGroup(GroupModel group)protected voidjoinGroupImpl(GroupModel group)voidleaveGroup(GroupModel group)voidremoveAttribute(String name)voidremoveRequiredAction(String actionName)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.RoleMapperModel
hasDirectRole
-
Methods inherited from interface org.keycloak.models.UserModel
addRequiredAction, removeRequiredAction
-
-
-
-
Field Detail
-
user
protected UserEntity user
-
em
protected javax.persistence.EntityManager em
-
realm
protected RealmModel realm
-
-
Constructor Detail
-
UserAdapter
public UserAdapter(KeycloakSession session, RealmModel realm, javax.persistence.EntityManager em, UserEntity user)
-
-
Method Detail
-
getEntity
public UserEntity getEntity()
- Specified by:
getEntityin interfaceJpaModel<UserEntity>
-
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(String actionName)
- Specified by:
addRequiredActionin interfaceUserModel
-
removeRequiredAction
public void removeRequiredAction(String actionName)
- Specified by:
removeRequiredActionin interfaceUserModel
-
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.
-
isEmailVerified
public boolean isEmailVerified()
- Specified by:
isEmailVerifiedin interfaceUserModel
-
setEmailVerified
public void setEmailVerified(boolean verified)
- Specified by:
setEmailVerifiedin interfaceUserModel
-
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.
-
getGroupsStream
public Stream<GroupModel> getGroupsStream(String search, Integer first, Integer max)
Description copied from interface:UserModelReturns a paginated stream of groups within this realm with search in the name- Specified by:
getGroupsStreamin interfaceUserModel- Parameters:
search- Case insensitive string which will be searched for. Ignored if null.first- Index of first group to return. Ignored if negative ornull.max- Maximum number of records to return. Ignored if negative ornull.- Returns:
- Stream of desired groups. Never returns
null.
-
getGroupsCount
public long getGroupsCount()
- Specified by:
getGroupsCountin interfaceUserModel
-
getGroupsCountByNameContaining
public long getGroupsCountByNameContaining(String search)
- Specified by:
getGroupsCountByNameContainingin interfaceUserModel
-
joinGroup
public void joinGroup(GroupModel group)
-
joinGroupImpl
protected void joinGroupImpl(GroupModel group)
-
leaveGroup
public void leaveGroup(GroupModel group)
- Specified by:
leaveGroupin interfaceUserModel
-
isMemberOf
public boolean isMemberOf(GroupModel group)
- Specified by:
isMemberOfin interfaceUserModel
-
getUserGroupMappingQuery
protected javax.persistence.TypedQuery<UserGroupMembershipEntity> getUserGroupMappingQuery(GroupModel group)
-
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
-
getUserRoleMappingEntityTypedQuery
protected javax.persistence.TypedQuery<UserRoleMappingEntity> getUserRoleMappingEntityTypedQuery(RoleModel role)
-
grantRole
public void grantRole(RoleModel role)
Description copied from interface:RoleMapperModelGrants the given role to this object.- Specified by:
grantRolein interfaceRoleMapperModel
-
grantRoleImpl
public void grantRoleImpl(RoleModel role)
-
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.
-
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
-
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.
-
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
-
-