Package org.keycloak.storage.adapter
Class AbstractUserAdapterFederatedStorage.Streams
- java.lang.Object
-
- org.keycloak.models.UserModelDefaultMethods
-
- org.keycloak.storage.adapter.AbstractUserAdapterFederatedStorage
-
- org.keycloak.storage.adapter.AbstractUserAdapterFederatedStorage.Streams
-
- All Implemented Interfaces:
RoleMapperModel
,UserModel
- Enclosing class:
- AbstractUserAdapterFederatedStorage
public abstract static class AbstractUserAdapterFederatedStorage.Streams extends AbstractUserAdapterFederatedStorage implements UserModel
TheStreams(org.keycloak.models.KeycloakSession,org.keycloak.models.RealmModel,org.keycloak.component.ComponentModel)
interface makes all collection-based methods inAbstractUserAdapterFederatedStorage
default 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.AbstractUserAdapterFederatedStorage
AbstractUserAdapterFederatedStorage.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.AbstractUserAdapterFederatedStorage
CREATED_TIMESTAMP_ATTRIBUTE, EMAIL_ATTRIBUTE, EMAIL_VERIFIED_ATTRIBUTE, ENABLED_ATTRIBUTE, FIRST_NAME_ATTRIBUTE, LAST_NAME_ATTRIBUTE, 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)
Gets role mappings from federated storage and automatically appends default roles.Stream<RoleModel>
getClientRoleMappingsStream(ClientModel app)
Returns stream of client roles that are directly set to this object for the given client.Set<GroupModel>
getGroups()
Gets groups from federated storage and automatically appends default groups of realm.Stream<GroupModel>
getGroupsStream()
Obtains the groups associated with the user.Set<RoleModel>
getRealmRoleMappings()
Gets role mappings from federated storage and automatically appends default roles.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()
Gets role mappings from federated storage and automatically appends default roles.Stream<RoleModel>
getRoleMappingsStream()
Returns stream of all role (both realm all client) that are directly set to this object.boolean
hasRole(RoleModel role)
Returnstrue
if this object is directly or indirectly assigned the given role,false
otherwise.boolean
isMemberOf(GroupModel group)
-
Methods inherited from class org.keycloak.storage.adapter.AbstractUserAdapterFederatedStorage
addRequiredAction, addRequiredAction, appendDefaultGroups, appendDefaultRolesToRoleMappings, credentialManager, deleteRoleMapping, equals, getAttributes, getCreatedTimestamp, getFederatedRoleMappings, getFederatedStorage, getFederationLink, getFirstAttribute, getGroupsInternal, getId, getRoleMappingsInternal, getServiceAccountClientLink, grantRole, hashCode, isEmailVerified, isEnabled, joinGroup, leaveGroup, mapAttribute, removeAttribute, removeRequiredAction, removeRequiredAction, setAttribute, setCreatedTimestamp, setEmailVerified, setEnabled, setFederationLink, setServiceAccountClientLink, setSingleAttribute
-
Methods inherited from class org.keycloak.models.UserModelDefaultMethods
getEmail, getFirstName, getLastName, setEmail, setFirstName, setLastName, 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:
getRequiredActions
in classAbstractUserAdapterFederatedStorage
-
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
- Overrides:
getRequiredActionsStream
in classAbstractUserAdapterFederatedStorage
- Returns:
- a non-null
Stream
of required action names.
-
getAttribute
public List<String> getAttribute(String name)
- Overrides:
getAttribute
in classAbstractUserAdapterFederatedStorage
-
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
- Overrides:
getAttributeStream
in classAbstractUserAdapterFederatedStorage
- Parameters:
name
- the name of the attribute.- Returns:
- a non-null
Stream
of attribute values.
-
getGroups
public Set<GroupModel> getGroups()
Description copied from class:AbstractUserAdapterFederatedStorage
Gets groups from federated storage and automatically appends default groups of realm. Also calls getGroupsInternal() method to pull group membership from provider. Implementors can override that method- Overrides:
getGroups
in classAbstractUserAdapterFederatedStorage
- Returns:
-
getGroupsStream
public Stream<GroupModel> getGroupsStream()
Description copied from interface:UserModel
Obtains the groups associated with the user.- Specified by:
getGroupsStream
in interfaceUserModel
- Overrides:
getGroupsStream
in classAbstractUserAdapterFederatedStorage
- Returns:
- a non-null
Stream
of groups.
-
isMemberOf
public boolean isMemberOf(GroupModel group)
- Specified by:
isMemberOf
in interfaceUserModel
- Overrides:
isMemberOf
in classAbstractUserAdapterFederatedStorage
-
getRealmRoleMappings
public Set<RoleModel> getRealmRoleMappings()
Description copied from class:AbstractUserAdapterFederatedStorage
Gets role mappings from federated storage and automatically appends default roles. Also calls getRoleMappingsInternal() method to pull role mappings from provider. Implementors can override that method- Overrides:
getRealmRoleMappings
in classAbstractUserAdapterFederatedStorage
- Returns:
-
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
- Overrides:
getRealmRoleMappingsStream
in classAbstractUserAdapterFederatedStorage
- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
getClientRoleMappings
public Set<RoleModel> getClientRoleMappings(ClientModel app)
Description copied from class:AbstractUserAdapterFederatedStorage
Gets role mappings from federated storage and automatically appends default roles. Also calls getRoleMappingsInternal() method to pull role mappings from provider. Implementors can override that method- Overrides:
getClientRoleMappings
in classAbstractUserAdapterFederatedStorage
- Returns:
-
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
- Overrides:
getClientRoleMappingsStream
in classAbstractUserAdapterFederatedStorage
- Parameters:
app
-ClientModel
Client to get the roles for.- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
getRoleMappings
public Set<RoleModel> getRoleMappings()
Description copied from class:AbstractUserAdapterFederatedStorage
Gets role mappings from federated storage and automatically appends default roles. Also calls getRoleMappingsInternal() method to pull role mappings from provider. Implementors can override that method- Overrides:
getRoleMappings
in classAbstractUserAdapterFederatedStorage
- Returns:
-
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
- Overrides:
getRoleMappingsStream
in classAbstractUserAdapterFederatedStorage
- Returns:
- Stream of
RoleModel
. Never returnsnull
.
-
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
- Overrides:
hasRole
in classAbstractUserAdapterFederatedStorage
- Returns:
- see description
- See Also:
if you want to check if this object is directly assigned to a role
-
-