package org.wildfly.security.auth.realm.ldap; import org.wildfly.security.auth.server.RealmUnavailableException; import org.wildfly.security.credential.Credential; /** * A {@link CredentialPersister} for persisting credentials into LDAP directory. * * Implementations of this interface are instantiated for a specific identity, as a result all of the methods on this * interface are specific to that identity. * * @author <a href="mailto:jkalina@redhat.com">Jan Kalina</a> */ public interface IdentityCredentialPersister extends IdentityCredentialLoader { /** * Determine whether a given credential type can be persisted by this credential persister. * * @param credentialType the credential type (must not be {@code null}) * @param algorithmName the credential algorithm name, if any * @return {@code true} if persisting of given credential is supported */ boolean getCredentialPersistSupport(Class<? extends Credential> credentialType, String algorithmName); /** * Store credential of identity. * * @param credential the credential */ void persistCredential(Credential credential) throws RealmUnavailableException; /** * Clear all supported credentials of identity. */ void clearCredentials() throws RealmUnavailableException; }