org.opends.server.api
Class PasswordValidator<T extends PasswordValidatorCfg>

java.lang.Object
  extended by org.opends.server.api.PasswordValidator<T>
Type Parameters:
T - The type of configuration handled by this password validator.
Direct Known Subclasses:
AttributeValuePasswordValidator, CharacterSetPasswordValidator, DictionaryPasswordValidator, LengthBasedPasswordValidator, RepeatedCharactersPasswordValidator, SimilarityBasedPasswordValidator, UniqueCharactersPasswordValidator

@PublicAPI(stability=UNCOMMITTED,
           mayInstantiate=false,
           mayExtend=true,
           mayInvoke=false)
public abstract class PasswordValidator<T extends PasswordValidatorCfg>
extends java.lang.Object

This class defines the set of methods and structures that must be implemented by a Directory Server module that may be used to determine whether a proposed password is acceptable for a user.


Constructor Summary
PasswordValidator()
           
 
Method Summary
 void finalizePasswordValidator()
          Performs any finalization that might be required when this password validator is unloaded.
abstract  void initializePasswordValidator(T configuration)
          Initializes this password validator based on the information in the provided configuration entry.
 boolean isConfigurationAcceptable(PasswordValidatorCfg configuration, java.util.List<Message> unacceptableReasons)
          Indicates whether the provided configuration is acceptable for this password validator.
abstract  boolean passwordIsAcceptable(ByteString newPassword, java.util.Set<ByteString> currentPasswords, Operation operation, Entry userEntry, MessageBuilder invalidReason)
          Indicates whether the provided password is acceptable for use by the specified user.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PasswordValidator

public PasswordValidator()
Method Detail

initializePasswordValidator

public abstract void initializePasswordValidator(T configuration)
                                          throws ConfigException,
                                                 InitializationException
Initializes this password validator based on the information in the provided configuration entry.

Parameters:
configuration - The configuration to use to initialize this password validator.
Throws:
ConfigException - If an unrecoverable problem arises in the process of performing the initialization.
InitializationException - If a problem occurs during initialization that is not related to the server configuration.

isConfigurationAcceptable

public boolean isConfigurationAcceptable(PasswordValidatorCfg configuration,
                                         java.util.List<Message> unacceptableReasons)
Indicates whether the provided configuration is acceptable for this password validator. It should be possible to call this method on an uninitialized password validator instance in order to determine whether the password validator would be able to use the provided configuration.

Note that implementations which use a subclass of the provided configuration class will likely need to cast the configuration to the appropriate subclass type.

Parameters:
configuration - The password validator configuration for which to make the determination.
unacceptableReasons - A list that may be used to hold the reasons that the provided configuration is not acceptable.
Returns:
true if the provided configuration is acceptable for this password validator, or false if not.

finalizePasswordValidator

public void finalizePasswordValidator()
Performs any finalization that might be required when this password validator is unloaded. No action is taken in the default implementation.


passwordIsAcceptable

public abstract boolean passwordIsAcceptable(ByteString newPassword,
                                             java.util.Set<ByteString> currentPasswords,
                                             Operation operation,
                                             Entry userEntry,
                                             MessageBuilder invalidReason)
Indicates whether the provided password is acceptable for use by the specified user. If the password is determined to be unacceptable, then a human-readable explanation should be appended to the provided buffer.

Parameters:
newPassword - The proposed clear-text password that should be validated.
currentPasswords - The set of clear-text current passwords for the user (if available). Note that the current passwords may not always be available, and this may not comprise entire set of passwords currently for the user.
operation - The operation that is being used to set the password. It may be an add, a modify, or a password modify operation.
userEntry - The entry for the user whose password is being changed.
invalidReason - The buffer to which the human-readable explanation should be appended if it is determined that the password is not acceptable.
Returns:
true if the password is acceptable, or false if not.