Package org.keycloak.storage.adapter
Class AbstractUserAdapter.Streams
- java.lang.Object
-
- org.keycloak.models.UserModelDefaultMethods
-
- org.keycloak.storage.adapter.AbstractUserAdapter
-
- org.keycloak.storage.adapter.AbstractUserAdapter.Streams
-
- All Implemented Interfaces:
RoleMapperModel,UserModel
- Enclosing class:
- AbstractUserAdapter
public abstract static class AbstractUserAdapter.Streams extends AbstractUserAdapter implements UserModel
TheStreams(org.keycloak.models.KeycloakSession,org.keycloak.models.RealmModel,org.keycloak.component.ComponentModel)interface makes all collection-based methods inAbstractUserAdapterdefault by providing implementations that delegate to theStream-based variants instead of the other way around. It allows for implementations to focus on theStream-based approach for processing sets of data and benefit from the potential memory and performance optimizations of that approach.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.keycloak.storage.adapter.AbstractUserAdapter
AbstractUserAdapter.Streams
-
Nested classes/interfaces inherited from interface org.keycloak.models.UserModel
UserModel.RequiredAction, UserModel.SearchableFields, UserModel.Streams, UserModel.UserRemovedEvent
-
-
Field Summary
-
Fields inherited from class org.keycloak.storage.adapter.AbstractUserAdapter
created, realm, session, storageId, storageProviderModel
-
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 Streams(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<String>getAttribute(String name)Stream<String>getAttributeStream(String name)Obtains all values associated with the specified attribute name.Set<RoleModel>getClientRoleMappings(ClientModel app)Stream<RoleModel>getClientRoleMappingsStream(ClientModel app)Returns stream of client roles that are directly set to this object for the given client.Set<GroupModel>getGroups()Stream<GroupModel>getGroupsStream()Obtains the groups associated with the user.Set<RoleModel>getRealmRoleMappings()Stream<RoleModel>getRealmRoleMappingsStream()Returns stream of realm roles that are directly set to this object.Set<String>getRequiredActions()Stream<String>getRequiredActionsStream()Obtains the names of required actions associated with the user.Set<RoleModel>getRoleMappings()Stream<RoleModel>getRoleMappingsStream()Returns stream of all role (both realm all client) that are directly set to this object.booleanhasRole(RoleModel role)Returnstrueif this object is directly or indirectly assigned the given role,falseotherwise.booleanisMemberOf(GroupModel group)-
Methods inherited from class org.keycloak.storage.adapter.AbstractUserAdapter
addRequiredAction, addRequiredAction, appendDefaultGroups, appendDefaultRolesToRoleMappings, deleteRoleMapping, equals, getAttributes, getCreatedTimestamp, getEmail, getFederationLink, getFirstAttribute, getFirstName, getGroupsInternal, getId, getLastName, getRoleMappingsInternal, getServiceAccountClientLink, grantRole, hashCode, isEmailVerified, isEnabled, joinGroup, leaveGroup, removeAttribute, removeRequiredAction, removeRequiredAction, setAttribute, setCreatedTimestamp, setEmail, setEmailVerified, setEnabled, setFederationLink, setFirstName, setLastName, setServiceAccountClientLink, setSingleAttribute, setUsername
-
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
deleteRoleMapping, grantRole, hasDirectRole
-
Methods inherited from interface org.keycloak.models.UserModel
addRequiredAction, addRequiredAction, credentialManager, getAttributes, getCreatedTimestamp, getEmail, getFederationLink, getFirstAttribute, getFirstName, getGroupsCount, getGroupsCountByNameContaining, getGroupsStream, getId, getLastName, getServiceAccountClientLink, getUsername, isEmailVerified, isEnabled, joinGroup, leaveGroup, removeAttribute, removeRequiredAction, removeRequiredAction, setAttribute, setCreatedTimestamp, setEmail, setEmailVerified, setEnabled, setFederationLink, setFirstName, setLastName, setServiceAccountClientLink, setSingleAttribute, setUsername
-
-
-
-
Constructor Detail
-
Streams
public Streams(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel)
-
-
Method Detail
-
getRequiredActions
public Set<String> getRequiredActions()
- Overrides:
getRequiredActionsin classAbstractUserAdapter
-
getRequiredActionsStream
public Stream<String> getRequiredActionsStream()
Description copied from interface:UserModelObtains the names of required actions associated with the user.- Specified by:
getRequiredActionsStreamin interfaceUserModel- Overrides:
getRequiredActionsStreamin classAbstractUserAdapter- Returns:
- a non-null
Streamof required action names.
-
getAttribute
public List<String> getAttribute(String name)
- Overrides:
getAttributein classAbstractUserAdapter
-
getAttributeStream
public Stream<String> getAttributeStream(String name)
Description copied from interface:UserModelObtains all values associated with the specified attribute name.- Specified by:
getAttributeStreamin interfaceUserModel- Overrides:
getAttributeStreamin classAbstractUserAdapter- Parameters:
name- the name of the attribute.- Returns:
- a non-null
Streamof attribute values.
-
getGroups
public Set<GroupModel> getGroups()
- Overrides:
getGroupsin classAbstractUserAdapter
-
getGroupsStream
public Stream<GroupModel> getGroupsStream()
Description copied from interface:UserModelObtains the groups associated with the user.- Specified by:
getGroupsStreamin interfaceUserModel- Overrides:
getGroupsStreamin classAbstractUserAdapter- Returns:
- a non-null
Streamof groups.
-
isMemberOf
public boolean isMemberOf(GroupModel group)
- Specified by:
isMemberOfin interfaceUserModel- Overrides:
isMemberOfin classAbstractUserAdapter
-
getRealmRoleMappings
public Set<RoleModel> getRealmRoleMappings()
- Overrides:
getRealmRoleMappingsin classAbstractUserAdapter
-
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- Overrides:
getRealmRoleMappingsStreamin classAbstractUserAdapter- Returns:
- Stream of
RoleModel. Never returnsnull.
-
getClientRoleMappings
public Set<RoleModel> getClientRoleMappings(ClientModel app)
- Overrides:
getClientRoleMappingsin classAbstractUserAdapter
-
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- Overrides:
getClientRoleMappingsStreamin classAbstractUserAdapter- Parameters:
app-ClientModelClient to get the roles for.- Returns:
- Stream of
RoleModel. Never returnsnull.
-
getRoleMappings
public Set<RoleModel> getRoleMappings()
- Overrides:
getRoleMappingsin classAbstractUserAdapter
-
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- Overrides:
getRoleMappingsStreamin classAbstractUserAdapter- Returns:
- Stream of
RoleModel. Never returnsnull.
-
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- Overrides:
hasRolein classAbstractUserAdapter- Returns:
- see description
- See Also:
if you want to check if this object is directly assigned to a role
-
-