public void testRejectSearchControls()
throws Exception
{
Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
org.nasutekds.server.tools.LDAPReader r = new org.nasutekds.server.tools.LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
BindRequestProtocolOp bindRequest =
new BindRequestProtocolOp(
ByteString.valueOf("cn=Directory Manager"), 2,
ByteString.valueOf("password"));
LDAPMessage message = new LDAPMessage(1, bindRequest);
w.writeMessage(message);
message = r.readMessage();
BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
assertEquals(bindResponse.getResultCode(), 0);
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(ByteString.empty(),
SearchScope.BASE_OBJECT,
DereferencePolicy.NEVER_DEREF_ALIASES, 0, 0, false,
LDAPFilter.decode("(objectClass=*)"), null);
ArrayList<Control> controls = new ArrayList<Control>(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();
assertEquals(searchDone.getResultCode(), LDAPResultCode.PROTOCOL_ERROR);
}
finally
{
try
{
r.close();
} catch (Exception e) {}
try
{
w.close();
} catch (Exception e) {}
try
{
s.close();
} catch (Exception e) {}