From 19a4cbeb29fbf1052416728310f062281bceccb4 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Fri, 06 Oct 2006 17:01:56 +0000
Subject: [PATCH] Update the password validator API in the following ways:

---
 opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java b/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
index 664c67c..82f4b81 100644
--- a/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
+++ b/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
@@ -29,9 +29,11 @@
 
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.HashSet;
 import java.util.concurrent.locks.Lock;
 
 import org.opends.server.api.ClientConnection;
@@ -685,9 +687,29 @@
         {
           if (selfChange || (! pwPolicyState.skipValidationForAdministrators()))
           {
+            HashSet<ByteString> clearPasswords;
+            if (oldPassword == null)
+            {
+              clearPasswords =
+                   new HashSet<ByteString>(pwPolicyState.getClearPasswords());
+            }
+            else
+            {
+              clearPasswords = new HashSet<ByteString>();
+              clearPasswords.add(oldPassword);
+              for (ByteString pw : pwPolicyState.getClearPasswords())
+              {
+                if (! Arrays.equals(pw.value(), oldPassword.value()))
+                {
+                  clearPasswords.add(pw);
+                }
+              }
+            }
+
             StringBuilder invalidReason = new StringBuilder();
             if (! pwPolicyState.passwordIsAcceptable(operation, userEntry,
                                                      newPassword,
+                                                     clearPasswords,
                                                      invalidReason))
             {
               if (oldPassword == null)

--
Gitblit v1.10.0