From 684830f9e78326aba7a0140444c0e41dcfaff809 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 25 Feb 2016 09:44:28 +0000
Subject: [PATCH] Code cleanup: - Replaced use of Socket by RemoteConnection - Replaced use of the various InternalClientConnection.processModify() methods by InternalClientConnection.processModify(ModifyRequest) everywhere it is not critical and perfs will be equivalent
---
opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPv2TestCase.java | 376 +++++++++++++----------------------------------------
1 files changed, 91 insertions(+), 285 deletions(-)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPv2TestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPv2TestCase.java
index 38d960b..46e9030 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPv2TestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPv2TestCase.java
@@ -12,29 +12,37 @@
* information: "Portions Copyright [year] [name of copyright owner]".
*
* Copyright 2006-2008 Sun Microsystems, Inc.
- * Portions Copyright 2010-2015 ForgeRock AS.
+ * Portions Copyright 2010-2016 ForgeRock AS.
*/
package org.opends.server.protocols.ldap ;
-import java.net.Socket;
-import java.util.ArrayList;
-
-import org.forgerock.opendj.ldap.ByteString;
-import org.forgerock.opendj.ldap.ModificationType;
-import org.forgerock.opendj.ldap.SearchScope;
-import org.opends.server.TestCaseUtils;
-import org.opends.server.tools.LDAPWriter;
-import org.opends.server.types.Control;
-import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
-import org.opends.server.types.RawAttribute;
-import org.opends.server.types.RawModification;
-import org.opends.server.util.StaticUtils;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
+import static org.forgerock.opendj.ldap.ModificationType.*;
+import static org.forgerock.opendj.ldap.SearchScope.*;
+import static org.forgerock.opendj.ldap.controls.GenericControl.*;
+import static org.forgerock.opendj.ldap.requests.Requests.*;
import static org.opends.server.util.ServerConstants.*;
import static org.testng.Assert.*;
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.Filter;
+import org.forgerock.opendj.ldap.requests.AddRequest;
+import org.forgerock.opendj.ldap.requests.CompareRequest;
+import org.forgerock.opendj.ldap.requests.DeleteRequest;
+import org.forgerock.opendj.ldap.requests.ModifyDNRequest;
+import org.forgerock.opendj.ldap.requests.ModifyRequest;
+import org.forgerock.opendj.ldap.requests.Requests;
+import org.forgerock.opendj.ldap.requests.SearchRequest;
+import org.opends.server.TestCaseUtils;
+import org.opends.server.tools.RemoteConnection;
+import org.opends.server.types.Control;
+import org.opends.server.types.LDAPException;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
/**
* This class provides a number of tests to ensure that the server interacts
* with LDAPv2 clients as expected.
@@ -73,23 +81,9 @@
"replace: ds-cfg-allow-ldap-v2",
"ds-cfg-allow-ldap-v2: false");
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
-
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(),
- LDAPResultCode.PROTOCOL_ERROR);
+ bindLdapV2(conn, "cn=Directory Manager", "password", LDAPResultCode.PROTOCOL_ERROR);
}
finally
{
@@ -98,9 +92,6 @@
"changetype: modify",
"replace: ds-cfg-allow-ldap-v2",
"ds-cfg-allow-ldap-v2: true");
-
- StaticUtils.close(r, w);
- StaticUtils.close(s);
}
}
@@ -116,34 +107,11 @@
public void testRejectExtendedRequest()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
-
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), 0);
-
- ExtendedRequestProtocolOp extendedRequest =
- new ExtendedRequestProtocolOp(OID_START_TLS_REQUEST);
- message = new LDAPMessage(2, extendedRequest);
- w.writeMessage(message);
-
- assertNull(r.readMessage());
- }
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
+ bindLdapV2(conn, "cn=Directory Manager", "password");
+ conn.writeMessage(new ExtendedRequestProtocolOp(OID_START_TLS_REQUEST));
+ assertNull(conn.readMessage());
}
}
@@ -159,46 +127,36 @@
public void testRejectAddControls()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
+ bindLdapV2(conn, "cn=Directory Manager", "password");
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), 0);
+ AddRequest addRequest = Requests.newAddRequest("ou=People,o=test")
+ .addAttribute("objectClass", "organizationalUnit")
+ .addAttribute("ou", "People")
+ .addControl(newControl(OID_MANAGE_DSAIT_CONTROL, true));
- ArrayList<RawAttribute> addAttrs = new ArrayList<>();
- addAttrs.add(RawAttribute.create("objectClass", "organizationalUnit"));
- addAttrs.add(RawAttribute.create("ou", "People"));
-
- AddRequestProtocolOp addRequest =
- new AddRequestProtocolOp(ByteString.valueOfUtf8("ou=People,o=test"), addAttrs);
- ArrayList<Control> controls = new ArrayList<>(1);
- controls.add(new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
- message = new LDAPMessage(2, addRequest, controls);
- w.writeMessage(message);
-
- message = r.readMessage();
+ LDAPMessage message = conn.add(addRequest, false);
AddResponseProtocolOp addResponse = message.getAddResponseProtocolOp();
assertEquals(addResponse.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
}
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
- }
}
+ private void bindLdapV2(RemoteConnection conn, String bindDN, String bindPwd) throws IOException, LDAPException
+ {
+ bindLdapV2(conn, bindDN, bindPwd, LDAPResultCode.SUCCESS);
+ }
+ private void bindLdapV2(RemoteConnection conn, String bindDN, String bindPwd, int expectedRC, Control... controls)
+ throws IOException, LDAPException
+ {
+ conn.writeMessage(new BindRequestProtocolOp(ByteString.valueOfUtf8(bindDN), 2, ByteString.valueOfUtf8(bindPwd)),
+ Arrays.asList(controls));
+
+ LDAPMessage message = conn.readMessage();
+ BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
+ assertEquals(bindResponse.getResultCode(), expectedRC);
+ }
/**
* Tests to ensure that the server will reject an LDAPv2 bind request if it
@@ -210,34 +168,13 @@
public void testRejectBindControls()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- ArrayList<Control> controls = new ArrayList<>(1);
- controls.add(new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
- LDAPMessage message = new LDAPMessage(1, bindRequest, controls);
- w.writeMessage(message);
-
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
- }
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
+ bindLdapV2(conn, "cn=Directory Manager", "password",
+ LDAPResultCode.PROTOCOL_ERROR, new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
}
}
-
-
/**
* Tests to ensure that the server will reject an LDAPv2 compare request if it
* contains any controls.
@@ -248,41 +185,15 @@
public void testRejectCompareControls()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
+ bindLdapV2(conn, "cn=Directory Manager", "password");
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), 0);
-
- CompareRequestProtocolOp compareRequest =
- new CompareRequestProtocolOp(ByteString.valueOfUtf8("o=test"),
- "o", ByteString.valueOfUtf8("test"));
- ArrayList<Control> controls = new ArrayList<>(1);
- controls.add(new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
- message = new LDAPMessage(2, compareRequest, controls);
- w.writeMessage(message);
-
- message = r.readMessage();
- CompareResponseProtocolOp compareResponse =
- message.getCompareResponseProtocolOp();
- assertEquals(compareResponse.getResultCode(),
- LDAPResultCode.PROTOCOL_ERROR);
- }
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
+ CompareRequest compareRequest = newCompareRequest("o=test", "o", "test")
+ .addControl(newControl(OID_MANAGE_DSAIT_CONTROL, true));
+ LDAPMessage message = conn.compare(compareRequest, false);
+ CompareResponseProtocolOp compareResponse = message.getCompareResponseProtocolOp();
+ assertEquals(compareResponse.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
}
}
@@ -298,40 +209,15 @@
public void testRejectDeleteControls()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
+ bindLdapV2(conn, "cn=Directory Manager", "password");
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), 0);
-
- DeleteRequestProtocolOp deleteRequest =
- new DeleteRequestProtocolOp(ByteString.valueOfUtf8("o=test"));
- ArrayList<Control> controls = new ArrayList<>(1);
- controls.add(new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
- message = new LDAPMessage(2, deleteRequest, controls);
- w.writeMessage(message);
-
- message = r.readMessage();
- DeleteResponseProtocolOp deleteResponse =
- message.getDeleteResponseProtocolOp();
- assertEquals(deleteResponse.getResultCode(),
- LDAPResultCode.PROTOCOL_ERROR);
- }
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
+ DeleteRequest deleteRequest = newDeleteRequest("o=test")
+ .addControl(newControl(OID_MANAGE_DSAIT_CONTROL, true));
+ LDAPMessage message = conn.delete(deleteRequest, false);
+ DeleteResponseProtocolOp deleteResponse = message.getDeleteResponseProtocolOp();
+ assertEquals(deleteResponse.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
}
}
@@ -347,43 +233,16 @@
public void testRejectModifyControls()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
+ bindLdapV2(conn, "cn=Directory Manager", "password");
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), 0);
-
- ArrayList<RawModification> mods = new ArrayList<>();
- mods.add(RawModification.create(ModificationType.REPLACE, "description", "foo"));
-
- ModifyRequestProtocolOp modifyRequest =
- new ModifyRequestProtocolOp(ByteString.valueOfUtf8("o=test"), mods);
- ArrayList<Control> controls = new ArrayList<>(1);
- controls.add(new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
- message = new LDAPMessage(2, modifyRequest, controls);
- w.writeMessage(message);
-
- message = r.readMessage();
- ModifyResponseProtocolOp modifyResponse =
- message.getModifyResponseProtocolOp();
- assertEquals(modifyResponse.getResultCode(),
- LDAPResultCode.PROTOCOL_ERROR);
- }
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
+ ModifyRequest modifyRequest = newModifyRequest("o=test")
+ .addModification(REPLACE, "description", "foo")
+ .addControl(newControl(OID_MANAGE_DSAIT_CONTROL, true));
+ LDAPMessage message = conn.modify(modifyRequest, false);
+ ModifyResponseProtocolOp modifyResponse = message.getModifyResponseProtocolOp();
+ assertEquals(modifyResponse.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
}
}
@@ -399,41 +258,15 @@
public void testRejectModifyDNControls()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
+ bindLdapV2(conn, "cn=Directory Manager", "password");
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), 0);
-
- ModifyDNRequestProtocolOp modifyDNRequest =
- new ModifyDNRequestProtocolOp(ByteString.valueOfUtf8("o=test"),
- ByteString.valueOfUtf8("cn=test"), false);
- ArrayList<Control> controls = new ArrayList<>(1);
- controls.add(new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
- message = new LDAPMessage(2, modifyDNRequest, controls);
- w.writeMessage(message);
-
- message = r.readMessage();
- ModifyDNResponseProtocolOp modifyDNResponse =
- message.getModifyDNResponseProtocolOp();
- assertEquals(modifyDNResponse.getResultCode(),
- LDAPResultCode.PROTOCOL_ERROR);
- }
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
+ ModifyDNRequest modifyDNRequest = newModifyDNRequest("o=test", "cn=test")
+ .addControl(newControl(OID_MANAGE_DSAIT_CONTROL, true));
+ LDAPMessage message = conn.modifyDN(modifyDNRequest, false);
+ ModifyDNResponseProtocolOp modifyDNResponse = message.getModifyDNResponseProtocolOp();
+ assertEquals(modifyDNResponse.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
}
}
@@ -449,43 +282,16 @@
public void testRejectSearchControls()
throws Exception
{
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
- LDAPWriter w = new LDAPWriter(s);
-
- try
+ try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
{
- BindRequestProtocolOp bindRequest =
- new BindRequestProtocolOp(
- ByteString.valueOfUtf8("cn=Directory Manager"), 2,
- ByteString.valueOfUtf8("password"));
- LDAPMessage message = new LDAPMessage(1, bindRequest);
- w.writeMessage(message);
+ bindLdapV2(conn, "cn=Directory Manager", "password");
- message = r.readMessage();
- BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
- assertEquals(bindResponse.getResultCode(), 0);
-
- SearchRequestProtocolOp searchRequest =
- new SearchRequestProtocolOp(ByteString.empty(),
- SearchScope.BASE_OBJECT,
- DereferenceAliasesPolicy.NEVER, 0, 0, false,
- LDAPFilter.objectClassPresent(), null);
- ArrayList<Control> controls = new ArrayList<>(1);
- controls.add(new LDAPControl(OID_MANAGE_DSAIT_CONTROL, true));
- message = new LDAPMessage(2, searchRequest, controls);
- w.writeMessage(message);
-
- message = r.readMessage();
- SearchResultDoneProtocolOp searchDone =
- message.getSearchResultDoneProtocolOp();
+ SearchRequest searchRequest = newSearchRequest(DN.rootDN(), BASE_OBJECT, Filter.objectClassPresent())
+ .addControl(newControl(OID_MANAGE_DSAIT_CONTROL, true));
+ conn.search(searchRequest);
+ LDAPMessage message = conn.readMessage();
+ SearchResultDoneProtocolOp searchDone = message.getSearchResultDoneProtocolOp();
assertEquals(searchDone.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
}
- finally
- {
- StaticUtils.close(r, w);
- StaticUtils.close(s);
- }
}
}
-
--
Gitblit v1.10.0