From 926e18c1f9944d6504df5d627525f922fc5eac0c Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Mon, 08 Aug 2016 15:56:56 +0000
Subject: [PATCH] Fixed tests names and added a test to verify Virtual Attribute provided Password Policy on Add operation.
---
opendj-server-legacy/src/test/java/org/opends/server/extensions/UserDefinedVirtualAttributeProviderTestCase.java | 182 ++++++++++++++++++++++++++-------------------
1 files changed, 105 insertions(+), 77 deletions(-)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/extensions/UserDefinedVirtualAttributeProviderTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/extensions/UserDefinedVirtualAttributeProviderTestCase.java
index 14e9808..c52378e 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/extensions/UserDefinedVirtualAttributeProviderTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/extensions/UserDefinedVirtualAttributeProviderTestCase.java
@@ -50,12 +50,6 @@
/** The attribute type for the description attribute. */
private AttributeType descriptionType;
- /** The attribute type for the ds-privilege-name attribute. */
- private AttributeType privNameType;
-
- /** The attribute type for the ds-pwp-password-policy-dn attribute. */
- private AttributeType pwPolicyDNType;
-
/**
* Ensures that the Directory Server is running.
@@ -69,8 +63,6 @@
TestCaseUtils.startServer();
descriptionType = CoreSchema.getDescriptionAttributeType();
- pwPolicyDNType = DirectoryServer.getSchema().getAttributeType("ds-pwp-password-policy-dn");
- privNameType = DirectoryServer.getSchema().getAttributeType("ds-privilege-name");
}
@@ -583,16 +575,61 @@
}
+ private void testSetupVirtualPasswordPolicyDN(String policyDN, String ruleDN) throws Exception
+ {
+ TestCaseUtils.addEntries(
+ "dn: " + policyDN,
+ "objectClass: top",
+ "objectClass: ds-cfg-password-policy",
+ "cn: Test Policy",
+ "ds-cfg-password-attribute: userPassword",
+ "ds-cfg-default-password-storage-scheme: " +
+ "cn=Salted SHA-1,cn=Password Storage Schemes,cn=config",
+ "ds-cfg-allow-expired-password-changes: false",
+ "ds-cfg-allow-multiple-password-values: false",
+ "ds-cfg-allow-pre-encoded-passwords: false",
+ "ds-cfg-allow-user-password-changes: true",
+ "ds-cfg-expire-passwords-without-warning: false",
+ "ds-cfg-force-change-on-add: false",
+ "ds-cfg-force-change-on-reset: false",
+ "ds-cfg-grace-login-count: 0",
+ "ds-cfg-idle-lockout-interval: 0 seconds",
+ "ds-cfg-lockout-failure-count: 0",
+ "ds-cfg-lockout-duration: 0 seconds",
+ "ds-cfg-lockout-failure-expiration-interval: 0 seconds",
+ "ds-cfg-min-password-age: 0 seconds",
+ "ds-cfg-max-password-age: 0 seconds",
+ "ds-cfg-max-password-reset-age: 0 seconds",
+ "ds-cfg-password-expiration-warning-interval: 5 days",
+ "ds-cfg-password-change-requires-current-password: true",
+ "ds-cfg-password-validator: cn=Length-Based Password Validator," +
+ "cn=Password Validators,cn=config",
+ "ds-cfg-require-secure-authentication: false",
+ "ds-cfg-require-secure-password-changes: false",
+ "ds-cfg-skip-validation-for-administrators: false",
+ "",
+ "dn: " + ruleDN,
+ "objectClass: top",
+ "objectClass: ds-cfg-virtual-attribute",
+ "objectClass: ds-cfg-user-defined-virtual-attribute",
+ "cn: User-Defined Test",
+ "ds-cfg-java-class: org.opends.server.extensions." +
+ "UserDefinedVirtualAttributeProvider",
+ "ds-cfg-enabled: true",
+ "ds-cfg-attribute-type: ds-pwp-password-policy-dn",
+ "ds-cfg-conflict-behavior: merge-real-and-virtual",
+ "ds-cfg-value: " + policyDN);
+ }
+
/**
* Tests to ensure that the user-defined virtual attribute provider can be
- * used to grant a privilege to a user.
- *
- * @throws Exception If an unexpected problem occurs.
+ * used to apply a custom password policy for a user. The custom password
+ * policy will reject passwords shorter than six characters, whereas the
+ * default policy will not.
*/
@Test
- public void testVirtualPrivilege()
- throws Exception
+ public void testVirtualPasswordPolicyDN() throws Exception
{
TestCaseUtils.initializeTestBackend(true);
@@ -600,62 +637,22 @@
String ruleDN = "cn=User-Defined Test,cn=Virtual Attributes,cn=config";
String userDN = "uid=test.user,o=test";
- TestCaseUtils.addEntries(
- "dn: cn=Test Policy,cn=Password Policies,cn=config",
- "objectClass: top",
- "objectClass: ds-cfg-password-policy",
- "cn: Test Policy",
- "ds-cfg-password-attribute: userPassword",
- "ds-cfg-default-password-storage-scheme: " +
- "cn=Salted SHA-1,cn=Password Storage Schemes,cn=config",
- "ds-cfg-allow-expired-password-changes: false",
- "ds-cfg-allow-multiple-password-values: false",
- "ds-cfg-allow-pre-encoded-passwords: false",
- "ds-cfg-allow-user-password-changes: true",
- "ds-cfg-expire-passwords-without-warning: false",
- "ds-cfg-force-change-on-add: false",
- "ds-cfg-force-change-on-reset: false",
- "ds-cfg-grace-login-count: 0",
- "ds-cfg-idle-lockout-interval: 0 seconds",
- "ds-cfg-lockout-failure-count: 0",
- "ds-cfg-lockout-duration: 0 seconds",
- "ds-cfg-lockout-failure-expiration-interval: 0 seconds",
- "ds-cfg-min-password-age: 0 seconds",
- "ds-cfg-max-password-age: 0 seconds",
- "ds-cfg-max-password-reset-age: 0 seconds",
- "ds-cfg-password-expiration-warning-interval: 5 days",
- "ds-cfg-password-change-requires-current-password: true",
- "ds-cfg-password-validator: cn=Length-Based Password Validator," +
- "cn=Password Validators,cn=config",
- "ds-cfg-require-secure-authentication: false",
- "ds-cfg-require-secure-password-changes: false",
- "ds-cfg-skip-validation-for-administrators: false",
- "",
- "dn: " + ruleDN,
- "objectClass: top",
- "objectClass: ds-cfg-virtual-attribute",
- "objectClass: ds-cfg-user-defined-virtual-attribute",
- "cn: User-Defined Test",
- "ds-cfg-java-class: org.opends.server.extensions." +
- "UserDefinedVirtualAttributeProvider",
- "ds-cfg-enabled: true",
- "ds-cfg-attribute-type: ds-pwp-password-policy-dn",
- "ds-cfg-conflict-behavior: merge-real-and-virtual",
- "ds-cfg-value: " + policyDN,
- "",
- "dn: " + userDN,
- "objectClass: top",
- "objectClass: person",
- "objectClass: organizationalPerson",
- "objectClass: inetOrgPerson",
- "uid: test.user",
- "givenName: Test",
- "sn: User",
- "cn: Test User",
- "userPassword: testtest");
-
+ testSetupVirtualPasswordPolicyDN(policyDN, ruleDN);
try
{
+ assertEquals(TestCaseUtils.addEntryOperation(
+ "dn: " + userDN,
+ "objectClass: top",
+ "objectClass: person",
+ "objectClass: organizationalPerson",
+ "objectClass: inetOrgPerson",
+ "uid: test.user",
+ "givenName: Test",
+ "sn: User",
+ "cn: Test User",
+ "userPassword: testtest"),
+ ResultCode.SUCCESS);
+
String path1 =
TestCaseUtils.createTempFile("dn: " + userDN,
"changetype: modify", "replace: userPassword",
@@ -681,7 +678,6 @@
assertEquals(LDAPModify.mainModify(args2, false, null, null), 0);
assertEquals(LDAPModify.mainModify(args1, false, null, null), 0);
-
}
finally
{
@@ -696,18 +692,52 @@
}
+ /**
+ * Tests to ensure that the user-defined virtual attribute provider can be used to apply a custom password
+ * policy for a user. The custom password policy will reject passwords shorter than six characters,
+ * whereas the default policy will not. This test verifies that adding a user with a short password fails.
+ */
+ @Test
+ public void testVirtualPasswordPolicyDNForAdd() throws Exception
+ {
+ TestCaseUtils.initializeTestBackend(true);
+
+ String policyDN = "cn=Test Policy,cn=Password Policies,cn=config";
+ String ruleDN = "cn=User-Defined Test,cn=Virtual Attributes,cn=config";
+
+ testSetupVirtualPasswordPolicyDN(policyDN, ruleDN);
+ try {
+ assertEquals(TestCaseUtils.addEntryOperation(
+ "dn: uid=test.user,o=test",
+ "objectClass: top",
+ "objectClass: person",
+ "objectClass: organizationalPerson",
+ "objectClass: inetOrgPerson",
+ "uid: test.user",
+ "givenName: Test",
+ "sn: User",
+ "cn: Test User",
+ "userPassword: test"
+ ), ResultCode.CONSTRAINT_VIOLATION);
+ }
+ finally {
+ InternalClientConnection conn = getRootConnection();
+
+ DeleteOperation deleteOperation = conn.processDelete(DN.valueOf(ruleDN));
+ assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
+
+ deleteOperation = conn.processDelete(DN.valueOf(policyDN));
+ assertEquals(deleteOperation.getResultCode(), ResultCode.SUCCESS);
+ }
+ }
+
/**
* Tests to ensure that the user-defined virtual attribute provider can be
- * used to apply a custom password policy for a user. The custom password
- * policy will reject passwords shorter than six characters, whereas the
- * default policy will not.
- *
- * @throws Exception If an unexpected problem occurs.
+ * used to grant a privilege to a user.
*/
@Test
- public void testVirtualPasswordPolicyDN()
- throws Exception
+ public void testVirtualPrivilege() throws Exception
{
TestCaseUtils.initializeTestBackend(true);
@@ -738,7 +768,6 @@
"cn: Test User",
"userPassword: password");
-
try
{
String path1 =
@@ -766,7 +795,6 @@
assertEquals(LDAPModify.mainModify(args2, false, null, null), 0);
assertEquals(LDAPModify.mainModify(args1, false, null, null), 0);
-
}
finally
{
--
Gitblit v1.10.0