001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2008 Sun Microsystems, Inc.
015 */
016package org.forgerock.opendj.server.config.client;
017
018
019
020import org.forgerock.opendj.config.ManagedObjectDefinition;
021import org.forgerock.opendj.config.PropertyException;
022import org.forgerock.opendj.server.config.server.LengthBasedPasswordValidatorCfg;
023
024
025
026/**
027 * A client-side interface for reading and modifying Length Based
028 * Password Validator settings.
029 * <p>
030 * The Length Based Password Validator is used to determine whether a
031 * proposed password is acceptable based on whether the number of
032 * characters it contains falls within an acceptable range of values.
033 */
034public interface LengthBasedPasswordValidatorCfgClient extends PasswordValidatorCfgClient {
035
036  /**
037   * Get the configuration definition associated with this Length Based Password Validator.
038   *
039   * @return Returns the configuration definition associated with this Length Based Password Validator.
040   */
041  ManagedObjectDefinition<? extends LengthBasedPasswordValidatorCfgClient, ? extends LengthBasedPasswordValidatorCfg> definition();
042
043
044
045  /**
046   * Gets the "java-class" property.
047   * <p>
048   * Specifies the fully-qualified name of the Java class that
049   * provides the password validator implementation.
050   *
051   * @return Returns the value of the "java-class" property.
052   */
053  String getJavaClass();
054
055
056
057  /**
058   * Sets the "java-class" property.
059   * <p>
060   * Specifies the fully-qualified name of the Java class that
061   * provides the password validator implementation.
062   *
063   * @param value The value of the "java-class" property.
064   * @throws PropertyException
065   *           If the new value is invalid.
066   */
067  void setJavaClass(String value) throws PropertyException;
068
069
070
071  /**
072   * Gets the "max-password-length" property.
073   * <p>
074   * Specifies the maximum number of characters that can be included
075   * in a proposed password.
076   * <p>
077   * A value of zero indicates that there will be no upper bound
078   * enforced. If both minimum and maximum lengths are defined, then
079   * the minimum length must be less than or equal to the maximum
080   * length.
081   *
082   * @return Returns the value of the "max-password-length" property.
083   */
084  int getMaxPasswordLength();
085
086
087
088  /**
089   * Sets the "max-password-length" property.
090   * <p>
091   * Specifies the maximum number of characters that can be included
092   * in a proposed password.
093   * <p>
094   * A value of zero indicates that there will be no upper bound
095   * enforced. If both minimum and maximum lengths are defined, then
096   * the minimum length must be less than or equal to the maximum
097   * length.
098   *
099   * @param value The value of the "max-password-length" property.
100   * @throws PropertyException
101   *           If the new value is invalid.
102   */
103  void setMaxPasswordLength(Integer value) throws PropertyException;
104
105
106
107  /**
108   * Gets the "min-password-length" property.
109   * <p>
110   * Specifies the minimum number of characters that must be included
111   * in a proposed password.
112   * <p>
113   * A value of zero indicates that there will be no lower bound
114   * enforced. If both minimum and maximum lengths are defined, then
115   * the minimum length must be less than or equal to the maximum
116   * length.
117   *
118   * @return Returns the value of the "min-password-length" property.
119   */
120  int getMinPasswordLength();
121
122
123
124  /**
125   * Sets the "min-password-length" property.
126   * <p>
127   * Specifies the minimum number of characters that must be included
128   * in a proposed password.
129   * <p>
130   * A value of zero indicates that there will be no lower bound
131   * enforced. If both minimum and maximum lengths are defined, then
132   * the minimum length must be less than or equal to the maximum
133   * length.
134   *
135   * @param value The value of the "min-password-length" property.
136   * @throws PropertyException
137   *           If the new value is invalid.
138   */
139  void setMinPasswordLength(Integer value) throws PropertyException;
140
141}