From 56e752193bfb90d11cfe73c35a24e576b9b18c87 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 03 Jul 2013 11:03:06 +0000
Subject: [PATCH] First stab at having debuggable ACIs.
---
opends/src/server/org/opends/server/authorization/dseecompat/UserDN.java | 50 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 38 insertions(+), 12 deletions(-)
diff --git a/opends/src/server/org/opends/server/authorization/dseecompat/UserDN.java b/opends/src/server/org/opends/server/authorization/dseecompat/UserDN.java
index 34748af..1bd7373 100644
--- a/opends/src/server/org/opends/server/authorization/dseecompat/UserDN.java
+++ b/opends/src/server/org/opends/server/authorization/dseecompat/UserDN.java
@@ -23,34 +23,37 @@
*
*
* Copyright 2008 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
*/
-
package org.opends.server.authorization.dseecompat;
-import org.opends.messages.Message;
import static org.opends.messages.AccessControlMessages.*;
-import java.util.*;
-import org.opends.server.types.*;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.opends.messages.Message;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.types.*;
/**
* This class represents the userdn keyword in a bind rule.
*/
public class UserDN implements KeywordBindRule {
- /*
+
+ /**
* A dummy URL for invalid URLs such as: all, parent, anyone, self.
*/
private static String urlStr="ldap:///";
- /*
+ /**
* This list holds a list of objects representing a EnumUserDNType
* URL mapping.
*/
private List<UserDNTypeURL> urlList=null;
- /*
- * Enumeration of the userdn operation type.
- */
+ /** Enumeration of the userdn operation type. */
private EnumBindRuleType type=null;
/**
@@ -78,9 +81,9 @@
String[] vals=expression.split("[|][|]");
List<UserDNTypeURL> urlList = new LinkedList<UserDNTypeURL>();
- for(int i=0, m=vals.length; i < m; i++)
+ for (String val : vals)
{
- StringBuilder value = new StringBuilder(vals[i].trim());
+ StringBuilder value = new StringBuilder(val.trim());
/*
* TODO Evaluate using a wild-card in the dn portion of LDAP url.
* The current implementation (DS6) does not treat a "*"
@@ -174,6 +177,7 @@
* @return An evaluation result enumeration containing the result
* of the evaluation.
*/
+ @Override
public EnumEvalResult evaluate(AciEvalContext evalCtx) {
EnumEvalResult matched = EnumEvalResult.FALSE;
boolean undefined=false;
@@ -372,4 +376,26 @@
}
return matched;
}
-}
+
+ /** {@inheritDoc} */
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ toString(sb);
+ return sb.toString();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public final void toString(StringBuilder buffer) {
+ buffer.append("userdn");
+ buffer.append(this.type.getType());
+ for (UserDNTypeURL url : this.urlList) {
+ buffer.append("\"");
+ buffer.append(urlStr);
+ buffer.append(url.getUserDNType().toString().toLowerCase());
+ buffer.append("\"");
+ }
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.10.0