0N/A * The contents of this file are subject to the terms of the 0N/A * Common Development and Distribution License, Version 1.0 only 0N/A * (the "License"). You may not use this file except in compliance 0N/A * See the License for the specific language governing permissions 0N/A * and limitations under the License. 0N/A * When distributing Covered Code, include this CDDL HEADER in each 6983N/A * If applicable, add the following below this CDDL HEADER, with the 6983N/A * fields enclosed by brackets "[]" replaced with your own identifying 0N/A * Portions Copyright [yyyy] [name of copyright owner] 3215N/A * Copyright 2006-2008 Sun Microsystems, Inc. 0N/A * This class defines the set of methods and structures that must be 0N/A * implemented by a Directory Server module that may be used to 0N/A * determine whether a proposed password is acceptable for a user. 1008N/A * @param <T> The type of configuration handled by this password 0N/A * Initializes this password validator based on the information in 0N/A * the provided configuration entry. 1008N/A * @param configuration The configuration to use to initialize 0N/A * @throws ConfigException If an unrecoverable problem arises in 0N/A * the process of performing the 0N/A * @throws InitializationException If a problem occurs during 0N/A * initialization that is not 0N/A * related to the server 1787N/A * Indicates whether the provided configuration is acceptable for 1787N/A * this password validator. It should be possible to call this 1787N/A * method on an uninitialized password validator instance in order 1787N/A * to determine whether the password validator would be able to use 1787N/A * the provided configuration. 1787N/A * Note that implementations which use a subclass of the provided 1787N/A * configuration class will likely need to cast the configuration 1787N/A * to the appropriate subclass type. 1787N/A * @param configuration The password validator configuration 1787N/A * for which to make the determination. 1787N/A * @param unacceptableReasons A list that may be used to hold the 1787N/A * reasons that the provided 1787N/A * configuration is not acceptable. 1787N/A * @return {@code true} if the provided configuration is acceptable 1787N/A * for this password validator, or {@code false} if not. 1787N/A // This default implementation does not perform any special 1787N/A // validation. It should be overridden by password validator 1787N/A // implementations that wish to perform more detailed validation. 0N/A * Performs any finalization that might be required when this 0N/A * password validator is unloaded. No action is taken in the 0N/A * default implementation. 0N/A // No action is required by default. 0N/A * Indicates whether the provided password is acceptable for use by 0N/A * the specified user. If the password is determined to be 0N/A * unacceptable, then a human-readable explanation should be 0N/A * appended to the provided buffer. 366N/A * @param newPassword The proposed clear-text password that 366N/A * @param currentPasswords The set of clear-text current passwords 366N/A * for the user (if available). Note that 366N/A * the current passwords may not always be 366N/A * available, and this may not comprise 366N/A * entire set of passwords currently 366N/A * @param operation The operation that is being used to set 366N/A * the password. It may be an add, a 366N/A * modify, or a password modify operation. 366N/A * @param userEntry The entry for the user whose password 366N/A * @param invalidReason The buffer to which the human-readable 366N/A * explanation should be appended if it is 366N/A * determined that the password is not 2095N/A * @return {@code true} if the password is acceptable, or