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