Package org.keycloak.federation.sssd
Class SSSDFederationProvider
- java.lang.Object
-
- org.keycloak.federation.sssd.SSSDFederationProvider
-
- All Implemented Interfaces:
CredentialInputUpdater,CredentialInputValidator,Provider,ImportedUserValidation,UserLookupProvider,UserStorageProvider
public class SSSDFederationProvider extends Object implements UserStorageProvider, UserLookupProvider, CredentialInputUpdater, CredentialInputValidator, ImportedUserValidation
SPI provider implementation to retrieve data from SSSD and authenticate against PAM- Version:
- $Revision: 1 $
- Author:
- Bruno Oliveira
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.keycloak.credential.CredentialInputUpdater
CredentialInputUpdater.Streams
-
Nested classes/interfaces inherited from interface org.keycloak.storage.user.UserLookupProvider
UserLookupProvider.Streams
-
Nested classes/interfaces inherited from interface org.keycloak.storage.UserStorageProvider
UserStorageProvider.EditMode
-
-
Field Summary
Fields Modifier and Type Field Description protected UserStorageProviderModelmodelprotected KeycloakSessionsessionprotected static Set<String>supportedCredentialTypes
-
Constructor Summary
Constructors Constructor Description SSSDFederationProvider(KeycloakSession session, UserStorageProviderModel model, SSSDFederationProviderFactory sssdFederationProviderFactory)
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.keycloak.storage.user.UserLookupProvider
getUserByCredential
-
-
-
-
Field Detail
-
session
protected KeycloakSession session
-
model
protected UserStorageProviderModel model
-
-
Constructor Detail
-
SSSDFederationProvider
public SSSDFederationProvider(KeycloakSession session, UserStorageProviderModel model, SSSDFederationProviderFactory sssdFederationProviderFactory)
-
-
Method Detail
-
getUserByUsername
public UserModel getUserByUsername(RealmModel realm, String username)
- Specified by:
getUserByUsernamein interfaceUserLookupProvider
-
validate
public UserModel validate(RealmModel realm, UserModel user)
- Specified by:
validatein interfaceImportedUserValidation
-
findOrCreateAuthenticatedUser
protected UserModel findOrCreateAuthenticatedUser(RealmModel realm, String username)
Called after successful authentication- Parameters:
realm- realmusername- username without realm prefix- Returns:
- user if found or successfully created. Null if user with same username already exists, but is not linked to this provider
-
importUserToKeycloak
protected UserModel importUserToKeycloak(RealmModel realm, String username)
-
getUserById
public UserModel getUserById(RealmModel realm, String id)
- Specified by:
getUserByIdin interfaceUserLookupProvider
-
getUserByEmail
public UserModel getUserByEmail(RealmModel realm, String email)
- Specified by:
getUserByEmailin interfaceUserLookupProvider
-
preRemove
public void preRemove(RealmModel realm)
- Specified by:
preRemovein interfaceUserStorageProvider
-
preRemove
public void preRemove(RealmModel realm, RoleModel role)
- Specified by:
preRemovein interfaceUserStorageProvider
-
preRemove
public void preRemove(RealmModel realm, GroupModel group)
- Specified by:
preRemovein interfaceUserStorageProvider
-
isValid
public boolean isValid(RealmModel realm, UserModel local)
-
supportsCredentialType
public boolean supportsCredentialType(String credentialType)
- Specified by:
supportsCredentialTypein interfaceCredentialInputUpdater- Specified by:
supportsCredentialTypein interfaceCredentialInputValidator
-
isConfiguredFor
public boolean isConfiguredFor(RealmModel realm, UserModel user, String credentialType)
- Specified by:
isConfiguredForin interfaceCredentialInputValidator
-
isValid
public boolean isValid(RealmModel realm, UserModel user, CredentialInput input)
- Specified by:
isValidin interfaceCredentialInputValidator
-
validateAndProxy
public UserModel validateAndProxy(RealmModel realm, UserModel local)
-
updateCredential
public boolean updateCredential(RealmModel realm, UserModel user, CredentialInput input)
- Specified by:
updateCredentialin interfaceCredentialInputUpdater
-
disableCredentialType
public void disableCredentialType(RealmModel realm, UserModel user, String credentialType)
- Specified by:
disableCredentialTypein interfaceCredentialInputUpdater
-
getDisableableCredentialTypesStream
public Stream<String> getDisableableCredentialTypesStream(RealmModel realm, UserModel user)
- Specified by:
getDisableableCredentialTypesStreamin interfaceCredentialInputUpdater
-
-