From 39cfb739395cca91589c958fda4790c87ce0c9c8 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 02 Jan 2015 14:42:16 +0000
Subject: [PATCH] OPENDJ-1585 Re-implement DN normalization in server
---
opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
index 93a59b0..3034e55 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2008-2009 Sun Microsystems, Inc.
- * Portions Copyright 2012-2014 ForgeRock AS
+ * Portions Copyright 2012-2015 ForgeRock AS
*/
package org.opends.server.extensions;
@@ -81,10 +81,13 @@
@Override()
public Attribute getValues(Entry entry, VirtualAttributeRule rule)
{
- String normDNString = entry.getName().toNormalizedString();
- String uuidString =
- UUID.nameUUIDFromBytes(getBytes(normDNString)).toString();
- return Attributes.create(rule.getAttributeType(), uuidString);
+ return Attributes.create(rule.getAttributeType(), getUUIDString(entry));
+ }
+
+ private String getUUIDString(Entry entry)
+ {
+ ByteString normDN = entry.getName().toIrreversibleNormalizedByteString();
+ return UUID.nameUUIDFromBytes(normDN.toByteArray()).toString();
}
/** {@inheritDoc} */
@@ -99,14 +102,10 @@
@Override()
public boolean hasValue(Entry entry, VirtualAttributeRule rule, ByteString value)
{
- MatchingRule matchingRule =
- rule.getAttributeType().getEqualityMatchingRule();
+ MatchingRule matchingRule = rule.getAttributeType().getEqualityMatchingRule();
try
{
- String normalizedDN = entry.getName().toNormalizedString();
- String uuidString =
- UUID.nameUUIDFromBytes(getBytes(normalizedDN)).toString();
-
+ String uuidString = getUUIDString(entry);
ByteString normValue = matchingRule.normalizeAttributeValue(value);
return uuidString.equals(normValue.toString());
}
--
Gitblit v1.10.0