7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson/*
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * CDDL HEADER START
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * The contents of this file are subject to the terms of the
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Common Development and Distribution License, Version 1.0 only
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * (the "License"). You may not use this file except in compliance
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * with the License.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * or http://forgerock.org/license/CDDLv1.0.html.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * See the License for the specific language governing permissions
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * and limitations under the License.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * When distributing Covered Code, include this CDDL HEADER in each
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * file and include the License file at legal-notices/CDDLv1_0.txt.
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * If applicable, add the following below this CDDL HEADER, with the
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * fields enclosed by brackets "[]" replaced with your own identifying
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * information:
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Portions Copyright [yyyy] [name of copyright owner]
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * CDDL HEADER END
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
05b42f00b813c3dc70cbb80d62089f9cc0f6f549ludovicp * Copyright 2006-2008 Sun Microsystems, Inc.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonpackage org.opends.server.plugins;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport java.io.ByteArrayInputStream;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport java.util.ArrayList;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport java.util.HashSet;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport java.util.List;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.TestCaseUtils;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport org.opends.server.admin.server.AdminTestCaseUtils;
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilsonimport org.opends.server.admin.std.meta.PasswordPolicyImportPluginCfgDefn;
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilsonimport org.opends.server.admin.std.server.PasswordPolicyImportPluginCfg;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.api.plugin.PluginType;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.config.ConfigException;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.core.DirectoryServer;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.types.Attribute;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.types.AttributeValue;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.types.DN;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.types.Entry;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonimport org.opends.server.types.LDIFImportConfig;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport org.testng.annotations.BeforeClass;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport org.testng.annotations.DataProvider;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport org.testng.annotations.Test;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson/**
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * This class defines a set of tests for the
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * org.opends.server.plugins.PasswordPolicyImportPluginTestCase class.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilsonpublic class PasswordPolicyImportPluginTestCase
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson extends PluginTestCase
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson{
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson /**
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Ensures that the Directory Server is running.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @throws Exception If an unexpected problem occurs.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson @BeforeClass()
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson public void startServer()
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson throws Exception
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson TestCaseUtils.startServer();
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson /**
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Retrieves a set of valid configuration entries that may be used to
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * initialize the plugin.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @throws Exception If an unexpected problem occurs.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson @DataProvider(name = "validConfigs")
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson public Object[][] getValidConfigs()
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson throws Exception
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson List<Entry> entries = TestCaseUtils.makeEntries(
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "dn: cn=Password Policy Import,cn=Plugins,cn=config",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: top",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: ds-cfg-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-password-policy-import-plugin",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "cn: Password Policy Import",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-java-class: org.opends.server.plugins." +
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "PasswordPolicyImportPlugin",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-enabled: true",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "ds-cfg-plugin-type: ldifImport",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "dn: cn=Password Policy Import,cn=Plugins,cn=config",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: top",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-password-policy-import-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "cn: Password Policy Import",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-java-class: org.opends.server.plugins." +
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "PasswordPolicyImportPlugin",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-enabled: true",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "ds-cfg-plugin-type: ldifImport",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-default-user-password-storage-scheme: " +
9e6efc5309c2c3f7c00ed5f2d791b823bbcd2042neil_a_wilson "cn=Salted SHA-1,cn=Password Storage Schemes,cn=config",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "dn: cn=Password Policy Import,cn=Plugins,cn=config",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: top",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-password-policy-import-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "cn: Password Policy Import",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-java-class: org.opends.server.plugins." +
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "PasswordPolicyImportPlugin",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-enabled: true",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "ds-cfg-plugin-type: ldifImport",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-default-user-password-storage-scheme: " +
9e6efc5309c2c3f7c00ed5f2d791b823bbcd2042neil_a_wilson "cn=CRYPT,cn=Password Storage Schemes,cn=config",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-default-user-password-storage-scheme: " +
9e6efc5309c2c3f7c00ed5f2d791b823bbcd2042neil_a_wilson "cn=Salted SHA-1,cn=Password Storage Schemes,cn=config",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "dn: cn=Password Policy Import,cn=Plugins,cn=config",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: top",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-password-policy-import-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "cn: Password Policy Import",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-java-class: org.opends.server.plugins." +
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "PasswordPolicyImportPlugin",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-enabled: true",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "ds-cfg-plugin-type: ldifImport",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-default-auth-password-storage-scheme: " +
9e6efc5309c2c3f7c00ed5f2d791b823bbcd2042neil_a_wilson "cn=Salted SHA-1,cn=Password Storage Schemes,cn=config",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "dn: cn=Password Policy Import,cn=Plugins,cn=config",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: top",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-password-policy-import-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "cn: Password Policy Import",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-java-class: org.opends.server.plugins." +
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "PasswordPolicyImportPlugin",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-enabled: true",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "ds-cfg-plugin-type: ldifImport",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-default-user-password-storage-scheme: " +
9e6efc5309c2c3f7c00ed5f2d791b823bbcd2042neil_a_wilson "cn=Salted SHA-1,cn=Password Storage Schemes,cn=config",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-default-auth-password-storage-scheme: " +
9e6efc5309c2c3f7c00ed5f2d791b823bbcd2042neil_a_wilson "cn=Salted SHA-1,cn=Password Storage Schemes,cn=config"
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson );
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson Object[][] array = new Object[entries.size()][1];
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson for (int i=0; i < array.length; i++)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson array[i] = new Object[] { entries.get(i) };
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson return array;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson /**
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Tests the process of initializing the server with valid configurations.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @param entry The configuration entry to use for the initialization.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @throws Exception If an unexpected problem occurs.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson @Test(dataProvider = "validConfigs")
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson public void testInitializeWithValidConfigs(Entry e)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson throws Exception
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson HashSet<PluginType> pluginTypes = new HashSet<PluginType>();
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson List<Attribute> attrList = e.getAttribute("ds-cfg-plugin-type");
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson for (Attribute a : attrList)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff for (AttributeValue v : a)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7185b49f58c4cdb16d035ecc45e38ec9b1cd9bd0matthew_swift pluginTypes.add(PluginType.forName(
7185b49f58c4cdb16d035ecc45e38ec9b1cd9bd0matthew_swift v.getValue().toString().toLowerCase()));
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson PasswordPolicyImportPluginCfg configuration =
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson AdminTestCaseUtils.getConfiguration(
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson PasswordPolicyImportPluginCfgDefn.getInstance(), e);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson PasswordPolicyImportPlugin plugin = new PasswordPolicyImportPlugin();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift plugin.initializePlugin(pluginTypes, configuration);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift plugin.finalizePlugin();
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson /**
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Retrieves a set of invalid configuration entries.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @throws Exception If an unexpected problem occurs.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson @DataProvider(name = "invalidConfigs")
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson public Object[][] getInvalidConfigs()
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson throws Exception
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson ArrayList<Entry> entries = new ArrayList<Entry>();
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson for (String s : PluginType.getPluginTypeNames())
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson if (s.equalsIgnoreCase("ldifimport"))
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson continue;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson Entry e = TestCaseUtils.makeEntry(
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "dn: cn=Password Policy Import,cn=Plugins,cn=config",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: top",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: ds-cfg-plugin",
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson "objectClass: ds-cfg-password-policy-import-plugin",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "cn: Password Policy Import",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-java-class: org.opends.server.plugins." +
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "PasswordPolicyImportPlugin",
987a50dfe113ed235d28716ff080b59e8873655cmatthew_swift "ds-cfg-enabled: true",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "ds-cfg-plugin-type: " + s);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson entries.add(e);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson Object[][] array = new Object[entries.size()][1];
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson for (int i=0; i < array.length; i++)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson array[i] = new Object[] { entries.get(i) };
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson return array;
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson /**
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Tests the process of initializing the server with valid configurations.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @param entry The configuration entry to use for the initialization.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @throws Exception If an unexpected problem occurs.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson @Test(dataProvider = "invalidConfigs",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson expectedExceptions = { ConfigException.class })
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson public void testInitializeWithInvalidConfigs(Entry e)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson throws Exception
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson HashSet<PluginType> pluginTypes = new HashSet<PluginType>();
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson List<Attribute> attrList = e.getAttribute("ds-cfg-plugin-type");
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson if (attrList != null)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson for (Attribute a : attrList)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff for (AttributeValue v : a)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7185b49f58c4cdb16d035ecc45e38ec9b1cd9bd0matthew_swift pluginTypes.add(PluginType.forName(
7185b49f58c4cdb16d035ecc45e38ec9b1cd9bd0matthew_swift v.getValue().toString().toLowerCase()));
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson PasswordPolicyImportPluginCfg configuration =
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift AdminTestCaseUtils.getConfiguration(
b650ca9941ecbe0040db6097864e9cb383eb7163neil_a_wilson PasswordPolicyImportPluginCfgDefn.getInstance(), e);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson PasswordPolicyImportPlugin plugin = new PasswordPolicyImportPlugin();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift plugin.initializePlugin(pluginTypes, configuration);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift plugin.finalizePlugin();
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson /**
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * Tests the <CODE>doLDIFImport</CODE> method.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson *
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson * @throws Exception If an unexpected problem occurs.
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson */
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson @Test()
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson public void testDoLDIFImport()
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson throws Exception
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson TestCaseUtils.initializeTestBackend(true);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson DN dn = DN.decode("cn=Password Policy Import,cn=plugins,cn=config");
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson PasswordPolicyImportPlugin plugin =
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson (PasswordPolicyImportPlugin)
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson DirectoryServer.getPluginConfigManager().getRegisteredPlugin(dn);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson String[] entryLines =
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "dn: o=test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: top",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: organization",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "o: test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "dn: uid=test.user1,o=test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: top",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: person",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: organizationalPerson",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: inetOrgPerson",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "uid: test.user1",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "givenName: Test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "sn: User1",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "cn: Test User1",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "userPassword: password",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "dn: uid=test.user2,o=test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: top",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: person",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: organizationalPerson",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: inetOrgPerson",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "uid: test.user2",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "givenName: Test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "sn: User2",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "cn: Test User2",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "userPassword: password",
3db2e9f24cf5ad9cf80a5d1390c49e478f61d65fneil_a_wilson "ds-pwp-password-policy-dn: cn=SSHA512 UserPassword Policy," +
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "cn=Password Policies,cn=config",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "dn: uid=test.user3,o=test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: top",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: person",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: organizationalPerson",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: inetOrgPerson",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "objectClass: authPasswordObject",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "uid: test.user3",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "givenName: Test",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "sn: User3",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "cn: Test User3",
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson "authPassword: password",
3db2e9f24cf5ad9cf80a5d1390c49e478f61d65fneil_a_wilson "ds-pwp-password-policy-dn: cn=SHA1 AuthPassword Policy," +
3db2e9f24cf5ad9cf80a5d1390c49e478f61d65fneil_a_wilson "cn=Password Policies,cn=config"
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson };
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson String ldifString = TestCaseUtils.makeLdif(entryLines);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson ByteArrayInputStream bais =
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson new ByteArrayInputStream(ldifString.getBytes("UTF-8"));
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson LDIFImportConfig importConfig = new LDIFImportConfig(bais);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson for (Entry e : TestCaseUtils.makeEntries(entryLines))
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson {
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson plugin.doLDIFImport(importConfig, e);
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson }
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson}
7ea3e4667fd4a40f7792638bc429b36d8066557aneil_a_wilson