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 java.util.Collection;
032    import java.util.SortedSet;
033    import org.opends.server.admin.IllegalPropertyValueException;
034    import org.opends.server.admin.ManagedObjectDefinition;
035    import org.opends.server.admin.std.server.CharacterSetPasswordValidatorCfg;
036    
037    
038    
039    /**
040     * A client-side interface for reading and modifying Character Set
041     * Password Validator settings.
042     * <p>
043     * The Character Set Password Validator determines whether a proposed
044     * password is acceptable by checking whether it contains a sufficient
045     * number of characters from one or more user-defined character sets.
046     */
047    public interface CharacterSetPasswordValidatorCfgClient extends PasswordValidatorCfgClient {
048    
049      /**
050       * Get the configuration definition associated with this Character Set Password Validator.
051       *
052       * @return Returns the configuration definition associated with this Character Set Password Validator.
053       */
054      ManagedObjectDefinition<? extends CharacterSetPasswordValidatorCfgClient, ? extends CharacterSetPasswordValidatorCfg> definition();
055    
056    
057    
058      /**
059       * Gets the "allow-unclassified-characters" property.
060       * <p>
061       * Indicates whether this password validator allows passwords to
062       * contain characters outside of any of the user-defined character
063       * sets.
064       * <p>
065       * If this is "false", then only those characters in the
066       * user-defined character sets may be used in passwords. Any password
067       * containing a character not included in any character set will be
068       * rejected.
069       *
070       * @return Returns the value of the "allow-unclassified-characters" property.
071       */
072      Boolean isAllowUnclassifiedCharacters();
073    
074    
075    
076      /**
077       * Sets the "allow-unclassified-characters" property.
078       * <p>
079       * Indicates whether this password validator allows passwords to
080       * contain characters outside of any of the user-defined character
081       * sets.
082       * <p>
083       * If this is "false", then only those characters in the
084       * user-defined character sets may be used in passwords. Any password
085       * containing a character not included in any character set will be
086       * rejected.
087       *
088       * @param value The value of the "allow-unclassified-characters" property.
089       * @throws IllegalPropertyValueException
090       *           If the new value is invalid.
091       */
092      void setAllowUnclassifiedCharacters(boolean value) throws IllegalPropertyValueException;
093    
094    
095    
096      /**
097       * Gets the "character-set" property.
098       * <p>
099       * Specifies a character set containing characters that a password
100       * may contain and a value indicating the minimum number of
101       * characters required from that set.
102       * <p>
103       * Each value must be an integer (indicating the minimum required
104       * characters from the set) followed by a colon and the characters to
105       * include in that set (for example, "3:abcdefghijklmnopqrstuvwxyz"
106       * indicates that a user password must contain at least three
107       * characters from the set of lowercase ASCII letters). Multiple
108       * character sets can be defined in separate values, although no
109       * character can appear in more than one character set.
110       *
111       * @return Returns the values of the "character-set" property.
112       */
113      SortedSet<String> getCharacterSet();
114    
115    
116    
117      /**
118       * Sets the "character-set" property.
119       * <p>
120       * Specifies a character set containing characters that a password
121       * may contain and a value indicating the minimum number of
122       * characters required from that set.
123       * <p>
124       * Each value must be an integer (indicating the minimum required
125       * characters from the set) followed by a colon and the characters to
126       * include in that set (for example, "3:abcdefghijklmnopqrstuvwxyz"
127       * indicates that a user password must contain at least three
128       * characters from the set of lowercase ASCII letters). Multiple
129       * character sets can be defined in separate values, although no
130       * character can appear in more than one character set.
131       *
132       * @param values The values of the "character-set" property.
133       * @throws IllegalPropertyValueException
134       *           If one or more of the new values are invalid.
135       */
136      void setCharacterSet(Collection<String> values) throws IllegalPropertyValueException;
137    
138    
139    
140      /**
141       * Gets the "java-class" property.
142       * <p>
143       * Specifies the fully-qualified name of the Java class that
144       * provides the password validator implementation.
145       *
146       * @return Returns the value of the "java-class" property.
147       */
148      String getJavaClass();
149    
150    
151    
152      /**
153       * Sets the "java-class" property.
154       * <p>
155       * Specifies the fully-qualified name of the Java class that
156       * provides the password validator implementation.
157       *
158       * @param value The value of the "java-class" property.
159       * @throws IllegalPropertyValueException
160       *           If the new value is invalid.
161       */
162      void setJavaClass(String value) throws IllegalPropertyValueException;
163    
164    }