org.keycloak.models.cache.infinispan

## Class UserAdapter

- java.lang.Object
- - org.keycloak.models.cache.infinispan.UserAdapter

- All Implemented Interfaces:
    CachedUserModel, CachedUserModel.Streams, RoleMapperModel, RoleMapperModel.Streams, UserModel, UserModel.Streams

      public class UserAdapter
      extends Object
      implements CachedUserModel.Streams

  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.UserRemovedEvent`

  - ### Field Summary

    Fields
    Modifier and Type | Field and 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, 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 and Description
    `UserAdapter(CachedUser cached, UserCacheSession userProvider, KeycloakSession keycloakSession, RealmModel realm)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addRequiredAction(String action)`
    `void` | `addRequiredAction(UserModel.RequiredAction action)`
    `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 provider
    `String` | `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.
    `int` | `hashCode()`
    `boolean` | `hasRole(RoleModel role)` Returns `true` if this object is directly or indirectly assigned the given role, `false` otherwise.
    `void` | `invalidate()` Invalidate the cache for this model
    `boolean` | `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.Streams

      `getAttribute, getGroups, getRequiredActions`

    - ### Methods inherited from interface org.keycloak.models.UserModel

      `getGroups, getGroups, getGroupsCount, getGroupsStream`

    - ### Methods inherited from interface org.keycloak.models.RoleMapperModel.Streams

      `getClientRoleMappings, getRealmRoleMappings, getRoleMappings`

- - ### 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 interface `UserModel`

    - #### setFirstName

          public void setFirstName(String firstName)

      Specified by:
        `setFirstName` in interface `UserModel`

    - #### getLastName

          public String getLastName()

      Specified by:
        `getLastName` in interface `UserModel`

    - #### setLastName

          public void setLastName(String lastName)

      Specified by:
        `setLastName` in interface `UserModel`

    - #### getEmail

          public String getEmail()

      Specified by:
        `getEmail` in interface `UserModel`

    - #### setEmail

          public void setEmail(String email)

      Description copied from interface: `UserModel`
      Sets email for this user.
      Specified by:
        `setEmail` in interface `UserModel`
      Parameters:
        `email` - the email

    - #### 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 interface `CachedUserModel`
      Returns:

    - #### isMarkedForEviction

          public boolean isMarkedForEviction()

      Specified by:
        `isMarkedForEviction` in interface `CachedUserModel`

    - #### invalidate

          public void invalidate()

      Description copied from interface: `CachedUserModel`
      Invalidate the cache for this model
      Specified by:
        `invalidate` in interface `CachedUserModel`

    - #### getCacheTimestamp

          public long getCacheTimestamp()

      Description copied from interface: `CachedUserModel`
      When was the model was loaded from database.
      Specified by:
        `getCacheTimestamp` in interface `CachedUserModel`
      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 interface `CachedUserModel`
      Returns:

    - #### getId

          public String getId()

      Specified by:
        `getId` in interface `UserModel`

    - #### getUsername

          public String getUsername()

      Specified by:
        `getUsername` in interface `UserModel`

    - #### 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 interface `UserModel`
      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 interface `UserModel`

    - #### setCreatedTimestamp

          public void setCreatedTimestamp(Long timestamp)

      Specified by:
        `setCreatedTimestamp` in interface `UserModel`

    - #### isEnabled

          public boolean isEnabled()

      Specified by:
        `isEnabled` in interface `UserModel`

    - #### setEnabled

          public void setEnabled(boolean enabled)

      Specified by:
        `setEnabled` in interface `UserModel`

    - #### 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 interface `UserModel`

    - #### setAttribute

          public void setAttribute(String name,
                                   List<String> values)

      Specified by:
        `setAttribute` in interface `UserModel`

    - #### removeAttribute

          public void removeAttribute(String name)

      Specified by:
        `removeAttribute` in interface `UserModel`

    - #### getFirstAttribute

          public String getFirstAttribute(String name)

      Specified by:
        `getFirstAttribute` in interface `UserModel`
      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 interface `UserModel`
      Specified by:
        `getAttributeStream` in interface `UserModel.Streams`
      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 interface `UserModel`

    - #### getRequiredActionsStream

          public Stream<String> getRequiredActionsStream()

      Description copied from interface: `UserModel`
      Obtains the names of required actions associated with the user.
      Specified by:
        `getRequiredActionsStream` in interface `UserModel`
      Specified by:
        `getRequiredActionsStream` in interface `UserModel.Streams`
      Returns:
        a non-null `Stream` of required action names.

    - #### addRequiredAction

          public void addRequiredAction(UserModel.RequiredAction action)

      Specified by:
        `addRequiredAction` in interface `UserModel`

    - #### removeRequiredAction

          public void removeRequiredAction(UserModel.RequiredAction action)

      Specified by:
        `removeRequiredAction` in interface `UserModel`

    - #### addRequiredAction

          public void addRequiredAction(String action)

      Specified by:
        `addRequiredAction` in interface `UserModel`

    - #### removeRequiredAction

          public void removeRequiredAction(String action)

      Specified by:
        `removeRequiredAction` in interface `UserModel`

    - #### isEmailVerified

          public boolean isEmailVerified()

      Specified by:
        `isEmailVerified` in interface `UserModel`

    - #### setEmailVerified

          public void setEmailVerified(boolean verified)

      Specified by:
        `setEmailVerified` in interface `UserModel`

    - #### getFederationLink

          public String getFederationLink()

      Specified by:
        `getFederationLink` in interface `UserModel`

    - #### setFederationLink

          public void setFederationLink(String link)

      Specified by:
        `setFederationLink` in interface `UserModel`

    - #### getServiceAccountClientLink

          public String getServiceAccountClientLink()

      Specified by:
        `getServiceAccountClientLink` in interface `UserModel`

    - #### setServiceAccountClientLink

          public void setServiceAccountClientLink(String clientInternalId)

      Specified by:
        `setServiceAccountClientLink` in interface `UserModel`

    - #### 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 interface `RoleMapperModel`
      Specified by:
        `getRealmRoleMappingsStream` in interface `RoleMapperModel.Streams`
      Returns:
        stream of `RoleModel`

    - #### 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 interface `RoleMapperModel`
      Specified by:
        `getClientRoleMappingsStream` in interface `RoleMapperModel.Streams`
      Parameters:
        `app` - Client to get the roles for
      Returns:
        stream of `RoleModel`

    - #### hasRole

          public boolean hasRole(RoleModel role)

      Description copied from interface: `RoleMapperModel`
      Returns `true` 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 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 interface `RoleMapperModel`
      Returns:
        see description

    - #### grantRole

          public void grantRole(RoleModel role)

      Description copied from interface: `RoleMapperModel`
      Grants the given role to this object.
      Specified by:
        `grantRole` in interface `RoleMapperModel`

    - #### 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 interface `RoleMapperModel`
      Specified by:
        `getRoleMappingsStream` in interface `RoleMapperModel.Streams`
      Returns:
        stream of `RoleModel`

    - #### deleteRoleMapping

          public void deleteRoleMapping(RoleModel role)

      Description copied from interface: `RoleMapperModel`
      Removes the given role mapping from this object.
      Specified by:
        `deleteRoleMapping` in interface `RoleMapperModel`
      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 interface `UserModel`
      Specified by:
        `getGroupsStream` in interface `UserModel.Streams`
      Returns:
        a non-null `Stream` of groups.

    - #### getGroupsCountByNameContaining

          public long getGroupsCountByNameContaining(String search)

      Specified by:
        `getGroupsCountByNameContaining` in interface `UserModel`

    - #### joinGroup

          public void joinGroup(GroupModel group)

      Specified by:
        `joinGroup` in interface `UserModel`

    - #### leaveGroup

          public void leaveGroup(GroupModel group)

      Specified by:
        `leaveGroup` in interface `UserModel`

    - #### isMemberOf

          public boolean isMemberOf(GroupModel group)

      Specified by:
        `isMemberOf` in interface `UserModel`

    - #### equals

          public boolean equals(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

Copyright © 2021 JBoss by Red Hat. All rights reserved.