001    /*
002     * CDDL HEADER START
003     *
004     * The contents of this file are subject to the terms of the
005     * Common Development and Distribution License, Version 1.0 only
006     * (the "License").  You may not use this file except in compliance
007     * with the License.
008     *
009     * You can obtain a copy of the license at
010     * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011     * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012     * See the License for the specific language governing permissions
013     * and limitations under the License.
014     *
015     * When distributing Covered Code, include this CDDL HEADER in each
016     * file and include the License file at
017     * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
018     * add the following below this CDDL HEADER, with the fields enclosed
019     * by brackets "[]" replaced with your own identifying information:
020     *      Portions Copyright [yyyy] [name of copyright owner]
021     *
022     * CDDL HEADER END
023     *
024     *
025     *      Copyright 2008 Sun Microsystems, Inc.
026     */
027    package org.opends.server.admin.std.client;
028    
029    
030    
031    import org.opends.server.admin.IllegalPropertyValueException;
032    import org.opends.server.admin.ManagedObjectDefinition;
033    import org.opends.server.admin.std.server.DictionaryPasswordValidatorCfg;
034    
035    
036    
037    /**
038     * A client-side interface for reading and modifying Dictionary
039     * Password Validator settings.
040     * <p>
041     * The Dictionary Password Validator determines whether a proposed
042     * password is acceptable based on whether the given password value
043     * appears in a provided dictionary file.
044     */
045    public interface DictionaryPasswordValidatorCfgClient extends PasswordValidatorCfgClient {
046    
047      /**
048       * Get the configuration definition associated with this Dictionary Password Validator.
049       *
050       * @return Returns the configuration definition associated with this Dictionary Password Validator.
051       */
052      ManagedObjectDefinition<? extends DictionaryPasswordValidatorCfgClient, ? extends DictionaryPasswordValidatorCfg> definition();
053    
054    
055    
056      /**
057       * Gets the "case-sensitive-validation" property.
058       * <p>
059       * Indicates whether this password validator is to treat password
060       * characters in a case-sensitive manner.
061       * <p>
062       * If it is set to true, then the validator rejects a password only
063       * if it appears in the dictionary with exactly the same
064       * capitalization as provided by the user.
065       *
066       * @return Returns the value of the "case-sensitive-validation" property.
067       */
068      boolean isCaseSensitiveValidation();
069    
070    
071    
072      /**
073       * Sets the "case-sensitive-validation" property.
074       * <p>
075       * Indicates whether this password validator is to treat password
076       * characters in a case-sensitive manner.
077       * <p>
078       * If it is set to true, then the validator rejects a password only
079       * if it appears in the dictionary with exactly the same
080       * capitalization as provided by the user.
081       *
082       * @param value The value of the "case-sensitive-validation" property.
083       * @throws IllegalPropertyValueException
084       *           If the new value is invalid.
085       */
086      void setCaseSensitiveValidation(boolean value) throws IllegalPropertyValueException;
087    
088    
089    
090      /**
091       * Gets the "dictionary-file" property.
092       * <p>
093       * Specifies the path to the file containing a list of words that
094       * cannot be used as passwords.
095       * <p>
096       * It should be formatted with one word per line. The value can be
097       * an absolute path or a path that is relative to the OpenDS
098       * Directory Server instance root.
099       *
100       * @return Returns the value of the "dictionary-file" property.
101       */
102      String getDictionaryFile();
103    
104    
105    
106      /**
107       * Sets the "dictionary-file" property.
108       * <p>
109       * Specifies the path to the file containing a list of words that
110       * cannot be used as passwords.
111       * <p>
112       * It should be formatted with one word per line. The value can be
113       * an absolute path or a path that is relative to the OpenDS
114       * Directory Server instance root.
115       *
116       * @param value The value of the "dictionary-file" property.
117       * @throws IllegalPropertyValueException
118       *           If the new value is invalid.
119       */
120      void setDictionaryFile(String value) throws IllegalPropertyValueException;
121    
122    
123    
124      /**
125       * Gets the "java-class" property.
126       * <p>
127       * Specifies the fully-qualified name of the Java class that
128       * provides the password validator implementation.
129       *
130       * @return Returns the value of the "java-class" property.
131       */
132      String getJavaClass();
133    
134    
135    
136      /**
137       * Sets the "java-class" property.
138       * <p>
139       * Specifies the fully-qualified name of the Java class that
140       * provides the password validator implementation.
141       *
142       * @param value The value of the "java-class" property.
143       * @throws IllegalPropertyValueException
144       *           If the new value is invalid.
145       */
146      void setJavaClass(String value) throws IllegalPropertyValueException;
147    
148    
149    
150      /**
151       * Gets the "test-reversed-password" property.
152       * <p>
153       * Indicates whether this password validator is to test the reversed
154       * value of the provided password as well as the order in which it
155       * was given.
156       * <p>
157       * For example, if the user provides a new password of "password"
158       * and this configuration attribute is set to true, then the value
159       * "drowssap" is also tested against attribute values in the user's
160       * entry.
161       *
162       * @return Returns the value of the "test-reversed-password" property.
163       */
164      boolean isTestReversedPassword();
165    
166    
167    
168      /**
169       * Sets the "test-reversed-password" property.
170       * <p>
171       * Indicates whether this password validator is to test the reversed
172       * value of the provided password as well as the order in which it
173       * was given.
174       * <p>
175       * For example, if the user provides a new password of "password"
176       * and this configuration attribute is set to true, then the value
177       * "drowssap" is also tested against attribute values in the user's
178       * entry.
179       *
180       * @param value The value of the "test-reversed-password" property.
181       * @throws IllegalPropertyValueException
182       *           If the new value is invalid.
183       */
184      void setTestReversedPassword(boolean value) throws IllegalPropertyValueException;
185    
186    }