Package org.keycloak.storage.adapter
Class AbstractUserAdapterFederatedStorage
- java.lang.Object
-
- org.keycloak.models.UserModelDefaultMethods
-
- org.keycloak.storage.adapter.AbstractUserAdapterFederatedStorage
-
- All Implemented Interfaces:
RoleMapperModel,UserModel
- Direct Known Subclasses:
AbstractUserAdapterFederatedStorage.Streams
public abstract class AbstractUserAdapterFederatedStorage extends UserModelDefaultMethods
Assumes everything is managed by federated storage except for username. getId() returns a default value of "f:" + providerId + ":" + getUsername(). UserModel properties like enabled, firstName, lastName, email, etc. are all stored as attributes in federated storage. isEnabled() defaults to true if the ENABLED_ATTRIBUTE isn't set in federated storage- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractUserAdapterFederatedStorage.StreamsTheStreams(org.keycloak.models.KeycloakSession,org.keycloak.models.RealmModel,org.keycloak.component.ComponentModel)interface makes all collection-based methods inAbstractUserAdapterFederatedStoragedefault 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
Fields Modifier and Type Field Description static StringCREATED_TIMESTAMP_ATTRIBUTEstatic StringEMAIL_ATTRIBUTEstatic StringEMAIL_VERIFIED_ATTRIBUTEstatic StringENABLED_ATTRIBUTEstatic StringFIRST_NAME_ATTRIBUTEstatic StringLAST_NAME_ATTRIBUTEprotected RealmModelrealmprotected KeycloakSessionsessionprotected StorageIdstorageIdprotected ComponentModelstorageProviderModel-
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 AbstractUserAdapterFederatedStorage(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel)
-
Method Summary
-
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
hasDirectRole
-
Methods inherited from interface org.keycloak.models.UserModel
getGroupsCount, getGroupsCountByNameContaining, getGroupsStream, getUsername, setUsername
-
-
-
-
Field Detail
-
FIRST_NAME_ATTRIBUTE
public static String FIRST_NAME_ATTRIBUTE
-
LAST_NAME_ATTRIBUTE
public static String LAST_NAME_ATTRIBUTE
-
EMAIL_ATTRIBUTE
public static String EMAIL_ATTRIBUTE
-
EMAIL_VERIFIED_ATTRIBUTE
public static String EMAIL_VERIFIED_ATTRIBUTE
-
CREATED_TIMESTAMP_ATTRIBUTE
public static String CREATED_TIMESTAMP_ATTRIBUTE
-
ENABLED_ATTRIBUTE
public static String ENABLED_ATTRIBUTE
-
session
protected KeycloakSession session
-
realm
protected RealmModel realm
-
storageProviderModel
protected ComponentModel storageProviderModel
-
storageId
protected StorageId storageId
-
-
Constructor Detail
-
AbstractUserAdapterFederatedStorage
public AbstractUserAdapterFederatedStorage(KeycloakSession session, RealmModel realm, ComponentModel storageProviderModel)
-
-
Method Detail
-
getFederatedStorage
public UserFederatedStorageProvider getFederatedStorage()
-
getRequiredActions
public Set<String> getRequiredActions()
Deprecated.UsegetRequiredActionsStream()instead
-
addRequiredAction
public void addRequiredAction(String action)
-
removeRequiredAction
public void removeRequiredAction(String action)
-
addRequiredAction
public void addRequiredAction(UserModel.RequiredAction action)
-
removeRequiredAction
public void removeRequiredAction(UserModel.RequiredAction action)
-
getGroupsInternal
protected Set<GroupModel> 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
public Set<GroupModel> getGroups()
Deprecated.UsegetGroupsStream()insteadGets 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- Returns:
-
getGroupsStream
public Stream<GroupModel> getGroupsStream()
-
joinGroup
public void joinGroup(GroupModel group)
-
leaveGroup
public void leaveGroup(GroupModel group)
-
isMemberOf
public boolean isMemberOf(GroupModel group)
-
getRealmRoleMappings
public Set<RoleModel> getRealmRoleMappings()
Deprecated.UsegetRealmRoleMappingsStream()insteadGets 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- Returns:
-
getClientRoleMappings
public Set<RoleModel> getClientRoleMappings(ClientModel app)
Deprecated.UsegetClientRoleMappingsStream(ClientModel)insteadGets 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- Returns:
-
getClientRoleMappingsStream
public Stream<RoleModel> getClientRoleMappingsStream(ClientModel app)
-
hasRole
public boolean hasRole(RoleModel role)
-
grantRole
public void grantRole(RoleModel role)
-
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:
-
getRoleMappings
public Set<RoleModel> getRoleMappings()
Deprecated.UsegetRoleMappingsStream()insteadGets 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- Returns:
-
deleteRoleMapping
public void deleteRoleMapping(RoleModel role)
-
isEnabled
public boolean isEnabled()
-
setEnabled
public void setEnabled(boolean enabled)
-
getFederationLink
public String getFederationLink()
This method should not be overriden- Returns:
-
setFederationLink
public void setFederationLink(String link)
This method should not be overriden
-
getServiceAccountClientLink
public String getServiceAccountClientLink()
This method should not be overriden- Returns:
-
setServiceAccountClientLink
public void setServiceAccountClientLink(String clientInternalId)
This method should not be overriden
-
getId
public String getId()
Defaults to 'f:' + storageProvider.getId() + ':' + getUsername()- Returns:
-
getCreatedTimestamp
public Long getCreatedTimestamp()
-
setCreatedTimestamp
public void setCreatedTimestamp(Long timestamp)
-
removeAttribute
public void removeAttribute(String name)
-
getAttribute
public List<String> getAttribute(String name)
Deprecated.UsegetAttributeStream(String)instead
-
isEmailVerified
public boolean isEmailVerified()
-
setEmailVerified
public void setEmailVerified(boolean verified)
Stores as attribute in federated storage. EMAIL_VERIFIED_ATTRIBUTE- Parameters:
verified-
-
credentialManager
public SubjectCredentialManager credentialManager()
-
-