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.server;
017
018
019
020import java.util.SortedSet;
021import org.forgerock.opendj.config.server.ConfigurationChangeListener;
022import org.forgerock.opendj.ldap.DN;
023import org.forgerock.opendj.server.config.meta.PluginCfgDefn.PluginType;
024
025
026
027/**
028 * A server-side interface for querying Password Policy Import Plugin
029 * settings.
030 * <p>
031 * The Password Policy Import Plugin ensures that clear-text passwords
032 * contained in LDIF entries are properly encoded before they are
033 * stored in the appropriate directory server backend.
034 */
035public interface PasswordPolicyImportPluginCfg extends PluginCfg {
036
037  /**
038   * Gets the configuration class associated with this Password Policy Import Plugin.
039   *
040   * @return Returns the configuration class associated with this Password Policy Import Plugin.
041   */
042  Class<? extends PasswordPolicyImportPluginCfg> configurationClass();
043
044
045
046  /**
047   * Register to be notified when this Password Policy Import Plugin is changed.
048   *
049   * @param listener
050   *          The Password Policy Import Plugin configuration change listener.
051   */
052  void addPasswordPolicyImportChangeListener(ConfigurationChangeListener<PasswordPolicyImportPluginCfg> listener);
053
054
055
056  /**
057   * Deregister an existing Password Policy Import Plugin configuration change listener.
058   *
059   * @param listener
060   *          The Password Policy Import Plugin configuration change listener.
061   */
062  void removePasswordPolicyImportChangeListener(ConfigurationChangeListener<PasswordPolicyImportPluginCfg> listener);
063
064
065
066  /**
067   * Gets the "default-auth-password-storage-scheme" property.
068   * <p>
069   * Specifies the names of password storage schemes that to be used
070   * for encoding passwords contained in attributes with the auth
071   * password syntax for entries that do not include the
072   * ds-pwp-password-policy-dn attribute specifying which password
073   * policy should be used to govern them.
074   *
075   * @return Returns an unmodifiable set containing the values of the "default-auth-password-storage-scheme" property.
076   */
077  SortedSet<String> getDefaultAuthPasswordStorageScheme();
078
079
080
081  /**
082   * Gets the "default-auth-password-storage-scheme" property as a set
083   * of DNs.
084   * <p>
085   * Specifies the names of password storage schemes that to be used
086   * for encoding passwords contained in attributes with the auth
087   * password syntax for entries that do not include the
088   * ds-pwp-password-policy-dn attribute specifying which password
089   * policy should be used to govern them.
090   *
091   * @return Returns the DN values of the
092   *         "default-auth-password-storage-scheme" property.
093   */
094  SortedSet<DN> getDefaultAuthPasswordStorageSchemeDNs();
095
096
097
098  /**
099   * Gets the "default-user-password-storage-scheme" property.
100   * <p>
101   * Specifies the names of the password storage schemes to be used
102   * for encoding passwords contained in attributes with the user
103   * password syntax for entries that do not include the
104   * ds-pwp-password-policy-dn attribute specifying which password
105   * policy is to be used to govern them.
106   *
107   * @return Returns an unmodifiable set containing the values of the "default-user-password-storage-scheme" property.
108   */
109  SortedSet<String> getDefaultUserPasswordStorageScheme();
110
111
112
113  /**
114   * Gets the "default-user-password-storage-scheme" property as a set
115   * of DNs.
116   * <p>
117   * Specifies the names of the password storage schemes to be used
118   * for encoding passwords contained in attributes with the user
119   * password syntax for entries that do not include the
120   * ds-pwp-password-policy-dn attribute specifying which password
121   * policy is to be used to govern them.
122   *
123   * @return Returns the DN values of the
124   *         "default-user-password-storage-scheme" property.
125   */
126  SortedSet<DN> getDefaultUserPasswordStorageSchemeDNs();
127
128
129
130  /**
131   * Gets the "invoke-for-internal-operations" property.
132   * <p>
133   * Indicates whether the plug-in should be invoked for internal
134   * operations.
135   * <p>
136   * Any plug-in that can be invoked for internal operations must
137   * ensure that it does not create any new internal operatons that can
138   * cause the same plug-in to be re-invoked.
139   *
140   * @return Returns the value of the "invoke-for-internal-operations" property.
141   */
142  boolean isInvokeForInternalOperations();
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   * Gets the "plugin-type" property.
160   * <p>
161   * Specifies the set of plug-in types for the plug-in, which
162   * specifies the times at which the plug-in is invoked.
163   *
164   * @return Returns an unmodifiable set containing the values of the "plugin-type" property.
165   */
166  SortedSet<PluginType> getPluginType();
167
168}