From 3883d2297c3422d8aec2b40530c2d2b0a00ee57d Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 25 Aug 2011 16:27:28 +0000
Subject: [PATCH] Final refactoring work for OPENDJ-262: Implement pass through authentication (PTA)
---
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java | 56 +++++++-------------------------------------------------
1 files changed, 7 insertions(+), 49 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
index 3f9a2aa..9a2f57b 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
@@ -38,20 +38,13 @@
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.Lock;
import org.opends.messages.Message;
import org.opends.messages.MessageBuilder;
-import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.Backend;
-import org.opends.server.api.ChangeNotificationListener;
-import org.opends.server.api.ClientConnection;
-import org.opends.server.api.PasswordStorageScheme;
-import org.opends.server.api.PasswordValidator;
-import org.opends.server.api.SynchronizationProvider;
+import org.opends.server.api.*;
import org.opends.server.api.plugin.PluginResult;
import org.opends.server.controls.LDAPAssertionRequestControl;
import org.opends.server.controls.LDAPPostReadRequestControl;
@@ -1029,49 +1022,14 @@
// FIXME -- We need to check to see if the password policy subentry
// might be specified virtually rather than as a real
// attribute.
- PasswordPolicy passwordPolicy = null;
- List<Attribute> pwAttrList =
- entry.getAttribute(OP_ATTR_PWPOLICY_POLICY_DN);
- if ((pwAttrList != null) && (! pwAttrList.isEmpty()))
+ AuthenticationPolicy policy = AuthenticationPolicy.forUser(entry, false);
+ if (!policy.isPasswordPolicy())
{
- Attribute a = pwAttrList.get(0);
- Iterator<AttributeValue> iterator = a.iterator();
- if (iterator.hasNext())
- {
- DN policyDN;
- try
- {
- policyDN = DN.decode(iterator.next().getValue());
- }
- catch (DirectoryException de)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, de);
- }
-
- throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
- ERR_ADD_INVALID_PWPOLICY_DN_SYNTAX.get(
- String.valueOf(entryDN),
- de.getMessageObject()));
- }
-
- passwordPolicy = (PasswordPolicy) DirectoryServer
- .getAuthenticationPolicy(policyDN);
- if (passwordPolicy == null)
- {
- throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
- ERR_ADD_NO_SUCH_PWPOLICY.get(
- String.valueOf(entryDN),
- String.valueOf(policyDN)));
- }
- }
+ // The entry doesn't have a locally managed password, so no action is
+ // required.
+ return;
}
-
- if (passwordPolicy == null)
- {
- passwordPolicy = DirectoryServer.getDefaultPasswordPolicy();
- }
+ PasswordPolicy passwordPolicy = (PasswordPolicy) policy;
// See if a password was specified.
AttributeType passwordAttribute = passwordPolicy.getPasswordAttribute();
--
Gitblit v1.10.0