From 6932146c7ce6be2b604fd68d4ae6450ce784a80f Mon Sep 17 00:00:00 2001
From: coulbeck <coulbeck@localhost>
Date: Tue, 27 Mar 2007 21:05:16 +0000
Subject: [PATCH] Fix for issue #1458 (regression in ACI DN wildcards).

---
 opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java b/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
index 7428a38..8cc5f2c 100644
--- a/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
+++ b/opends/src/server/org/opends/server/authorization/dseecompat/PatternDN.java
@@ -103,6 +103,32 @@
   }
 
   /**
+   * Create a new DN pattern matcher to match a suffix.
+   * @param pattern The suffix pattern string.
+   * @throws org.opends.server.types.DirectoryException If the pattern string
+   * is not valid.
+   * @return A new DN pattern matcher.
+   */
+  public static PatternDN decodeSuffix(String pattern) throws DirectoryException
+  {
+    AttributeType fakeType =
+         DirectoryServer.getAttributeType(PATTERN_DN_FAKE_TYPE_NAME);
+    if (fakeType == null)
+    {
+       fakeType =
+            DirectoryServer.getDefaultAttributeType(PATTERN_DN_FAKE_TYPE_NAME);
+    }
+
+    SearchFilter filter;
+    DN patternDN = DN.decode(pattern);
+    String filterStr = PATTERN_DN_FAKE_TYPE_NAME + "=*" +
+         patternDN.toNormalizedString();
+    filter=SearchFilter.createFilterFromString(filterStr);
+
+    return new PatternDN(fakeType, filter);
+  }
+
+  /**
    * Determine whether a given DN matches this pattern.
    * @param dn The DN to be matched.
    * @return true if the DN matches the pattern.

--
Gitblit v1.10.0