Interface CredentialPersister
public interface CredentialPersister
Within LDAP credentials could be stored in different ways, splitting out a CredentialPersister allows different strategies to
be plugged into the realm.
- Author:
- Jan Kalina
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidaddBinaryIdentityAttributes(Collection<String> attributes) Construct set of LDAP attributes, which should be loaded as binary data.default voidaddRequiredIdentityAttributes(Collection<String> attributes) Construct set of LDAP attributes, which should be loaded as part of the identity from identity entry.forIdentity(DirContext dirContext, String distinguishedName, Attributes attributes) Obtain anIdentityCredentialLoaderto query the credentials for a specific identity.default org.wildfly.security.auth.realm.ldap.IdentityCredentialLoaderforIdentity(DirContext dirContext, String distinguishedName, Attributes attributes, Encoding hashEncoding) Obtain anIdentityCredentialLoaderto query the credentials for a specific identity.getCredentialAcquireSupport(Class<? extends Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec) Determine whether a given credential is definitely supported, possibly supported (for some identities), or definitely not supported.
-
Method Details
-
forIdentity
IdentityCredentialPersister forIdentity(DirContext dirContext, String distinguishedName, Attributes attributes) throws RealmUnavailableException Obtain anIdentityCredentialLoaderto query the credentials for a specific identity. Note: By this point referrals relating to the identity should have been resolved so theDirContextFactoryshould be suitable for use with the supplieddistinguishedName- Parameters:
dirContext- theDirContextto use to connect to LDAP.distinguishedName- the distinguished name of the identity.attributes- the identity attributes requested byaddRequiredIdentityAttributes(Collection)- Returns:
- An
IdentityCredentialLoaderfor the specified identity identified by their distinguished name. - Throws:
RealmUnavailableException
-
getCredentialAcquireSupport
SupportLevel getCredentialAcquireSupport(Class<? extends Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec) throws RealmUnavailableException Determine whether a given credential is definitely supported, possibly supported (for some identities), or definitely not supported.A DirContextFactory is made available if the directory server is going to be queried but most likely this call will need to be generic as querying a whole directory is not realistic.
Note: The DirContextFactory approach will be evolved further for better referral support so it makes it easier for it to be passed in for each call.
- Parameters:
credentialType- the credential type (must not benull)algorithmName- the credential algorithm nameparameterSpec- the algorithm parameters to match, ornullif any parameters are acceptable or the credential type does not support algorithm parameters- Returns:
- the level of support for this credential type
- Throws:
RealmUnavailableException
-
forIdentity
default org.wildfly.security.auth.realm.ldap.IdentityCredentialLoader forIdentity(DirContext dirContext, String distinguishedName, Attributes attributes, Encoding hashEncoding) throws RealmUnavailableException Obtain anIdentityCredentialLoaderto query the credentials for a specific identity.Note: By this point referrals relating to the identity should have been resolved so the
DirContextFactoryshould be suitable for use with the supplieddistinguishedName- Parameters:
dirContext- theDirContextto use to connect to LDAP.distinguishedName- the distinguished name of the identity.attributes- the identity attributes requested byaddRequiredIdentityAttributes(Collection)hashEncoding- specifies the string format for the hashed password- Returns:
- An
IdentityCredentialLoaderfor the specified identity identified by their distinguished name. - Throws:
RealmUnavailableException
-
addRequiredIdentityAttributes
Construct set of LDAP attributes, which should be loaded as part of the identity from identity entry.- Parameters:
attributes- output collection of attributes names, into which should be added
-
addBinaryIdentityAttributes
Construct set of LDAP attributes, which should be loaded as binary data. Should be subset ofCredentialLoader.addRequiredIdentityAttributes(java.util.Collection<java.lang.String>)output.- Parameters:
attributes- output collection of attributes names, into which should be added
-