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