From 97cfcdaa5cf2900db577a9639a1342bf960660fc Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 22 Feb 2013 07:58:17 +0000
Subject: [PATCH] OPENDJ-735 (CR-1310) Server does not support absolute true or false filters
---
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestLDAPFilter.java | 17 ++++++++++-------
opends/src/server/org/opends/server/types/RawFilter.java | 12 +++++++-----
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/opends/src/server/org/opends/server/types/RawFilter.java b/opends/src/server/org/opends/server/types/RawFilter.java
index 840549d..bb79940 100644
--- a/opends/src/server/org/opends/server/types/RawFilter.java
+++ b/opends/src/server/org/opends/server/types/RawFilter.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
*/
package org.opends.server.types;
import org.opends.messages.Message;
@@ -32,12 +33,12 @@
import java.util.ArrayList;
import java.io.IOException;
+import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.protocols.asn1.*;
import org.opends.server.protocols.ldap.LDAPFilter;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
import static org.opends.messages.ProtocolMessages.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.protocols.ldap.LDAPResultCode.*;
import static org.opends.server.util.StaticUtils.*;
@@ -636,12 +637,12 @@
try
{
reader.readStartSequence();
- // Should have atleast 1 filter.
- do
+ // Should have at least 1 filter
+ // could also be an absolute true/false filter
+ while (reader.hasNextElement())
{
filterComponents.add(LDAPFilter.decode(reader));
}
- while(reader.hasNextElement());
reader.readEndSequence();
}
catch (LDAPException le)
@@ -1135,6 +1136,7 @@
*
* @return A string representation of this search filter.
*/
+ @Override
public String toString()
{
StringBuilder buffer = new StringBuilder();
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestLDAPFilter.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestLDAPFilter.java
index c0a2e71..1e7c975 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestLDAPFilter.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestLDAPFilter.java
@@ -23,10 +23,12 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
- * Portions Copyright 2011 ForgeRock AS
+ * Portions Copyright 2011-2013 ForgeRock AS
*/
package org.opends.server.protocols.ldap;
+import java.util.ArrayList;
+
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
@@ -36,8 +38,7 @@
import org.opends.server.protocols.asn1.ASN1;
import org.opends.server.protocols.asn1.ASN1Reader;
-import static org.testng.Assert.assertEquals;
-import java.util.ArrayList;
+import static org.testng.Assert.*;
public class TestLDAPFilter extends LdapTestCase
{
@@ -195,17 +196,19 @@
{
"(ds-sync-conflict=uid=\\5c+3904211775265,ou=SharedAddressBook,cn=1038372,dc=cab)",
LDAPFilter.createEqualityFilter("ds-sync-conflict",
- ByteString.valueOf("uid=\\+3904211775265,ou=SharedAddressBook,cn=1038372,dc=cab")) }
+ ByteString.valueOf("uid=\\+3904211775265,ou=SharedAddressBook,cn=1038372,dc=cab")) },
+ // OPENDJ-735
+ { "(&)", LDAPFilter.createANDFilter(new ArrayList<RawFilter>()) },
+
+ // OPENDJ-735
+ { "(|)", LDAPFilter.createORFilter(new ArrayList<RawFilter>()) }
};
}
@Test(dataProvider = "filterstrings")
public void testDecode(String filterStr, LDAPFilter filter) throws Exception
{
- //LDAPFilter decodedFilter = LDAPFilter.decode(filterStr);
- //System.out.println(decodedFilter.);
- //System.out.println(filter.toString());
LDAPFilter decoded = LDAPFilter.decode(filterStr);
assertEquals(decoded.toString(), filter.toString());
assertEquals(decoded.getAssertionValue(), filter.getAssertionValue());
--
Gitblit v1.10.0