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 java.util.Collection;
021import java.util.SortedSet;
022import org.forgerock.opendj.config.ManagedObjectDefinition;
023import org.forgerock.opendj.config.PropertyException;
024import org.forgerock.opendj.server.config.meta.PluginCfgDefn.PluginType;
025import org.forgerock.opendj.server.config.server.PasswordPolicyImportPluginCfg;
026
027
028
029/**
030 * A client-side interface for reading and modifying Password Policy
031 * Import Plugin settings.
032 * <p>
033 * The Password Policy Import Plugin ensures that clear-text passwords
034 * contained in LDIF entries are properly encoded before they are
035 * stored in the appropriate directory server backend.
036 */
037public interface PasswordPolicyImportPluginCfgClient extends PluginCfgClient {
038
039  /**
040   * Get the configuration definition associated with this Password Policy Import Plugin.
041   *
042   * @return Returns the configuration definition associated with this Password Policy Import Plugin.
043   */
044  ManagedObjectDefinition<? extends PasswordPolicyImportPluginCfgClient, ? extends PasswordPolicyImportPluginCfg> definition();
045
046
047
048  /**
049   * Gets the "default-auth-password-storage-scheme" property.
050   * <p>
051   * Specifies the names of password storage schemes that to be used
052   * for encoding passwords contained in attributes with the auth
053   * password syntax for entries that do not include the
054   * ds-pwp-password-policy-dn attribute specifying which password
055   * policy should be used to govern them.
056   *
057   * @return Returns the values of the "default-auth-password-storage-scheme" property.
058   */
059  SortedSet<String> getDefaultAuthPasswordStorageScheme();
060
061
062
063  /**
064   * Sets the "default-auth-password-storage-scheme" property.
065   * <p>
066   * Specifies the names of password storage schemes that to be used
067   * for encoding passwords contained in attributes with the auth
068   * password syntax for entries that do not include the
069   * ds-pwp-password-policy-dn attribute specifying which password
070   * policy should be used to govern them.
071   *
072   * @param values The values of the "default-auth-password-storage-scheme" property.
073   * @throws PropertyException
074   *           If one or more of the new values are invalid.
075   */
076  void setDefaultAuthPasswordStorageScheme(Collection<String> values) throws PropertyException;
077
078
079
080  /**
081   * Gets the "default-user-password-storage-scheme" property.
082   * <p>
083   * Specifies the names of the password storage schemes to be used
084   * for encoding passwords contained in attributes with the user
085   * password syntax for entries that do not include the
086   * ds-pwp-password-policy-dn attribute specifying which password
087   * policy is to be used to govern them.
088   *
089   * @return Returns the values of the "default-user-password-storage-scheme" property.
090   */
091  SortedSet<String> getDefaultUserPasswordStorageScheme();
092
093
094
095  /**
096   * Sets the "default-user-password-storage-scheme" property.
097   * <p>
098   * Specifies the names of the password storage schemes to be used
099   * for encoding passwords contained in attributes with the user
100   * password syntax for entries that do not include the
101   * ds-pwp-password-policy-dn attribute specifying which password
102   * policy is to be used to govern them.
103   *
104   * @param values The values of the "default-user-password-storage-scheme" property.
105   * @throws PropertyException
106   *           If one or more of the new values are invalid.
107   */
108  void setDefaultUserPasswordStorageScheme(Collection<String> values) throws PropertyException;
109
110
111
112  /**
113   * Gets the "invoke-for-internal-operations" property.
114   * <p>
115   * Indicates whether the plug-in should be invoked for internal
116   * operations.
117   * <p>
118   * Any plug-in that can be invoked for internal operations must
119   * ensure that it does not create any new internal operatons that can
120   * cause the same plug-in to be re-invoked.
121   *
122   * @return Returns the value of the "invoke-for-internal-operations" property.
123   */
124  boolean isInvokeForInternalOperations();
125
126
127
128  /**
129   * Sets the "invoke-for-internal-operations" property.
130   * <p>
131   * Indicates whether the plug-in should be invoked for internal
132   * operations.
133   * <p>
134   * Any plug-in that can be invoked for internal operations must
135   * ensure that it does not create any new internal operatons that can
136   * cause the same plug-in to be re-invoked.
137   *
138   * @param value The value of the "invoke-for-internal-operations" property.
139   * @throws PropertyException
140   *           If the new value is invalid.
141   */
142  void setInvokeForInternalOperations(Boolean value) throws PropertyException;
143
144
145
146  /**
147   * Gets the "java-class" property.
148   * <p>
149   * Specifies the fully-qualified name of the Java class that
150   * provides the plug-in implementation.
151   *
152   * @return Returns the value of the "java-class" property.
153   */
154  String getJavaClass();
155
156
157
158  /**
159   * Sets the "java-class" property.
160   * <p>
161   * Specifies the fully-qualified name of the Java class that
162   * provides the plug-in implementation.
163   *
164   * @param value The value of the "java-class" property.
165   * @throws PropertyException
166   *           If the new value is invalid.
167   */
168  void setJavaClass(String value) throws PropertyException;
169
170
171
172  /**
173   * Gets the "plugin-type" property.
174   * <p>
175   * Specifies the set of plug-in types for the plug-in, which
176   * specifies the times at which the plug-in is invoked.
177   *
178   * @return Returns the values of the "plugin-type" property.
179   */
180  SortedSet<PluginType> getPluginType();
181
182
183
184  /**
185   * Sets the "plugin-type" property.
186   * <p>
187   * Specifies the set of plug-in types for the plug-in, which
188   * specifies the times at which the plug-in is invoked.
189   *
190   * @param values The values of the "plugin-type" property.
191   * @throws PropertyException
192   *           If one or more of the new values are invalid.
193   */
194  void setPluginType(Collection<PluginType> values) throws PropertyException;
195
196}