From 8e5f49c8e7505710e9b1f5167ee1ab37aac2a1ba Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 10 Apr 2009 20:15:06 +0000
Subject: [PATCH] Add test-case for issue 3638 - disabled until fix is provided.
---
opends/tests/unit-tests-testng/src/server/org/opends/server/core/BindOperationTestCase.java | 119 +++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 78 insertions(+), 41 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/core/BindOperationTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/core/BindOperationTestCase.java
index 82bbea5..e4e89f0 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/core/BindOperationTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/core/BindOperationTestCase.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.server.core;
@@ -30,6 +30,7 @@
import java.net.Socket;
import java.util.ArrayList;
+import java.util.List;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -39,8 +40,6 @@
import org.opends.server.plugins.DisconnectClientPlugin;
import org.opends.server.plugins.InvocationCounterPlugin;
import org.opends.server.plugins.ShortCircuitPlugin;
-import org.opends.server.protocols.asn1.ASN1Reader;
-import org.opends.server.protocols.asn1.ASN1Writer;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.ldap.*;
import org.opends.server.tools.LDAPSearch;
@@ -79,45 +78,45 @@
BindOperation[] simpleBinds = new BindOperation[]
{
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", ByteString.empty(),
ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", ByteString.empty(),
ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullOS, ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullOS, ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", ByteString.empty(), nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", ByteString.empty(), nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullOS, nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullOS, nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3",
ByteString.valueOf("cn=Directory Manager"),
ByteString.valueOf("password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", DN.nullDN(), ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", DN.nullDN(), ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullDN, ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullDN, ByteString.empty()),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", DN.nullDN(), nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", DN.nullDN(), nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullDN, nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullDN, nullOS),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", DN.decode("cn=Directory Manager"),
ByteString.valueOf("password"))
};
@@ -152,45 +151,45 @@
BindOperation[] saslBinds = new BindOperation[]
{
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", ByteString.empty(), "EXTERNAL", null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", ByteString.empty(), "EXTERNAL",
null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullOS, "EXTERNAL", null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullOS, "EXTERNAL", null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", ByteString.empty(), "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", ByteString.empty(), "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullOS, "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullOS, "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", DN.nullDN(), "EXTERNAL", null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", DN.nullDN(), "EXTERNAL", null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullDN, "EXTERNAL", null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullDN, "EXTERNAL", null),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", DN.nullDN(), "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", DN.nullDN(), "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
null, "3", nullDN, "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password")),
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
noControls, "3", nullDN, "PLAIN",
ByteString.valueOf("\u0000u:test.user\u0000password"))
};
@@ -1642,7 +1641,7 @@
requestControls.add(new LDAPControl("1.2.3.4", true));
BindOperationBasis bindOperation =
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
requestControls, "3", DN.nullDN(),
ByteString.empty());
bindOperation.run();
@@ -1669,7 +1668,7 @@
ByteString.valueOf("\u0000dn:cn=Directory Manager\u0000password");
BindOperationBasis bindOperation =
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
requestControls, "3", DN.nullDN(), "PLAIN",
saslCreds);
bindOperation.run();
@@ -1693,7 +1692,7 @@
requestControls.add(new LDAPControl("1.2.3.4", false));
BindOperationBasis bindOperation =
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
requestControls, "3", DN.nullDN(),
ByteString.empty());
@@ -1720,7 +1719,7 @@
ByteString.valueOf("\u0000dn:cn=Directory Manager\u0000password");
BindOperationBasis bindOperation =
- new BindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
+ new BindOperationBasis(conn, InternalClientConnection.nextOperationID(), InternalClientConnection.nextMessageID(),
requestControls, "3", DN.nullDN(), "PLAIN",
saslCreds);
bindOperation.run();
@@ -1856,6 +1855,42 @@
/**
+ * Tests performing a simple bind operation as a user who exists on
+ * another server for which a named subordinate reference exists.
+ *
+ * @throws Exception If an unexpected problem occurs.
+ */
+ @Test(enabled=false)
+ public void testSimpleBindReferral()
+ throws Exception
+ {
+ TestCaseUtils.initializeTestBackend(true);
+
+ TestCaseUtils.addEntry(
+ "dn: ou=people,o=test",
+ "objectClass: top",
+ "objectClass: referral",
+ "objectClass: extensibleObject",
+ "ou: people",
+ "ref: ldap://example.com:1389/ou=people,o=test");
+
+ InternalClientConnection conn =
+ InternalClientConnection.getRootConnection();
+
+ BindOperation bindOperation =
+ conn.processSimpleBind(ByteString.valueOf("uid=test,ou=people,o=test"),
+ ByteString.valueOf("password"));
+ assertEquals(bindOperation.getResultCode(), ResultCode.REFERRAL);
+
+ List<String> referralURLs = bindOperation.getReferralURLs();
+ assertNotNull(referralURLs);
+ assertEquals(referralURLs.size(), 1);
+ assertEquals(referralURLs.get(0), "ldap://example.com:1389/ou=people,o=test");
+ }
+
+
+
+ /**
* Tests performing a simple bind operation with a valid DN but incorrect
* password.
*/
@@ -2272,6 +2307,7 @@
/**
* Tests the <CODE>cancel</CODE> method to ensure that it indicates that the
* operation cannot be cancelled.
+ * @param bindOperation The bind operation.
*/
@Test(dataProvider = "simpleBinds")
public void testCancel(BindOperation bindOperation)
@@ -2286,6 +2322,7 @@
/**
* Tests the <CODE>getCancelRequest</CODE> method to ensure that it always
* returns <CODE>null</CODE>.
+ * @param bindOperation The bind operation.
*/
@Test(dataProvider = "simpleBinds")
public void testGetCancelRequest(BindOperation bindOperation)
--
Gitblit v1.10.0