LDAPAuthenticationHandlerTestCase.java revision ea1068c292e9b341af6d6b563cd8988a96be20a9
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at legal-notices/CDDLv1_0.txt.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
* Portions Copyright 2014-2015 ForgeRock AS
*/
/**
* A set of test cases for the LDAP authentication handler.
*/
public class LDAPAuthenticationHandlerTestCase
extends ToolsTestCase
{
/**
* Ensures that the Directory Server is running.
*
* @throws Exception If an unexpected problem occurs.
*/
public void startServer()
throws Exception
{
getFQDN();
}
/**
* Retrieves the names of the supported SASL mechanisms.
*
* @return The names of the supported SASL mechanisms.
*/
public Object[][] getSASLMechanisms()
{
return new Object[][]
{
new Object[] { "ANONYMOUS" },
new Object[] { "CRAM-MD5" },
new Object[] { "DIGEST-MD5" },
new Object[] { "EXTERNAL" },
new Object[] { "GSSAPI" },
new Object[] { "PLAIN" }
};
}
/**
* Tests the <CODE>getSupportedSASLMechanisms</CODE> method.
*
* @param saslMechanismName The name of the mechanism to ensure is in the
* returned list.
*/
{
boolean found = false;
{
if (found)
{
break;
}
}
}
/**
* Tests the <CODE>getSASLProperties</CODE> method.
*
* @param saslMechanismName The name for which to retrieve the applicable
* properties.
*/
{
}
/**
* Tests the <CODE>getSASLProperties</CODE> method with an unsupported
* mechanism name.
*/
@Test
public void testGetSASLPropertiesInvlaid()
{
}
/**
* Tests the <CODE>doSimpleBind</CODE> method with a valid DN and password and
* with no request controls.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSimpleBindWithValidDNAndPWNoControls()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSimpleBind</CODE> method with a null DN and password and
* no request controls.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSimpleBindWithNullDNAndPWNoControls()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSimpleBind</CODE> method with an empty DN and password
* and no request controls.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSimpleBindWithEmptyDNAndPWNoControls()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSimpleBind</CODE> method with an valid DN but no
* password.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSimpleBindWithDNButNoPassword()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSimpleBind</CODE> method with an valid DN but an invalid
* password.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSimpleBindWithDNButInvalidPassword()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSimpleBind</CODE> method with the password policy
* request control.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSimpleBindWithPasswordPolicyControl()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method with a null mechanism.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindNullMechanism()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method with an empty mechanism.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindEmptyMechanism()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method with an invalid mechanism.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindInvalidMechanism()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which ANONYMOUS
* authentication is disabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindAnonymousDisabled()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which ANONYMOUS
* authentication is enabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindAnonymous()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which ANONYMOUS
* authentication is enabled in the server and there is no trace information.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindAnonymousNoTrace()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which ANONYMOUS
* authentication is enabled in the server and multiple trace values are
* provided.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindAnonymousMultivaluedTrace()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which ANONYMOUS
* authentication is enabled in the server and an invalid SASL property is
* provided.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindAnonymousInvalidProperty()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which ANONYMOUS
* authentication is enabled in the server and the request includes the
* password policy request control.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindAnonymousWithPasswordPolicyControl()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which CRAM-MD5
* authentication is disabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5Disabled()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which CRAM-MD5
* authentication is enabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindCRAMMD5()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which an authID was provided that doesn't map to any user.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5InvalidAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which an empty authID was provided.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5EmptyAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which the provided password was incorrect.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5InvalidPassword()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which the specified user doesn't have a reversible password.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5NoReversiblePassword()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which the provided SASL properties were null.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5NullProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which the provided SASL properties were empty.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5EmptyProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which multiple authID values were provided
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5MultipleAuthIDs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method using CRAM-MD5 for the case in
* which an invalid SASL property was provided.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindCRAMMD5InvalidSASLProperty()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which CRAM-MD5
* authentication is enabled in the server and the password policy request
* control is used.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindCRAMMD5WithPasswordPolicyControl()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which DIGEST-MD5
* authentication is disabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5Disabled()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which DIGEST-MD5
* authentication is enabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindDigestMD5()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which DIGEST-MD5
* authentication is enabled in the server and an authz ID was provided.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindDigestMD5WithAuthzID()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties are <CODE>null</CODE>.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5NullProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties are empty.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5EmptyProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain an invalid property.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5InvalidProperty()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain multiple values for the authID property.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5MultipleAuthIDs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain an empty authID.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5MEmptyAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain multiple values for the realm property.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5MultipleRealms()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain a valid quality of protection.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindDigestMD5ValidQoP()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain the unsupported integrity quality of
* protection.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5UnsupportedQoPAuthInt()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain the unsupported confidentiality quality
* of protection.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5UnsupportedQoPAuthConf()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain an invalid quality of protection.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5InvalidQoP()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain multiple quality of protection values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5MultipleQoPs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain multiple digest URIs.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5MultipleDigestURIs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain multiple authorization IDs.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5MultipleAuthzIDs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain an invalid auth ID in the DN form.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5InvalidAuthDN()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the
* DIGEST-MD5 SASL properties contain an auth ID that doesn't map to any user.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5NonExistentAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which an invalid
* password was provided.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5InvalidPassword()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the target
* user does not have a reversible password.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindDigestMD5NoReversiblePassword()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which DIGEST-MD5
* authentication is enabled in the server and the password policy request
* control is included.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindDigestMD5WithPasswordPolicyControl()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which EXTERNAL
* authentication is not enabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindExternalDisabled()
throws Exception
{
"dn: cn=Test User,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User");
trustStorePath, "password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which EXTERNAL
* authentication is enabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindExternal()
throws Exception
{
"dn: cn=Test User,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User");
"password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in the EXTERNAL SASL
* properties were not empty.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindExternalInvalidProperties()
throws Exception
{
"dn: cn=Test User,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User");
"password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which EXTERNAL
* authentication is enabled in the server and the password policy request
* control is included.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindExternalWithPasswordPolicy()
throws Exception
{
"dn: cn=Test User,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User");
"password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties list was null.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPINullProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties list was empty.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIEmptyProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has a zero-length auth ID value.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIEmptyAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has multiple authID values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIMultipleAuthIDs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has multiple authzID values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIMultipleAuthzIDs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has multiple KDC values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIMultipleKDCs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has multiple quality of protection values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIMultipleQoPs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has an unsupported quality of protection value of
* auth-int.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIUnsupportedQoPAuthInt()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has an unsupported quality of protection value of
* auth-conf.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIUnsupportedQoPAuthConf()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has an invalid quality of protection value.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIInvalidQoP()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has multiple realm values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIMultipleRealms()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties has an invalid property.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPIInvalidProperty()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for GSSAPI authentication when the
* provided properties isn't empty but doesn't contain an auth ID.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindGSSAPINoAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which PLAIN
* authentication is disabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainDisabled()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which PLAIN
* authentication is enabled in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindPlain()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the PLAIN
* SASL properties are null.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainNullProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the PLAIN
* SASL properties are empty.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainEmptyProperties()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the PLAIN
* SASL properties have multiple auth ID values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainMultipleAuthIDs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the PLAIN
* SASL properties have multiple auth ID values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainZeroLengthAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the PLAIN
* SASL properties have multiple authzID values.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainMultipleAuthzIDs()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the PLAIN
* SASL properties contains an invalid property.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainInvalidProperty()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which the PLAIN
* SASL properties does not contain an auth ID.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainNoAuthID()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
try
{
}
finally
{
s.close();
}
}
/**
* Tests the <CODE>doSASLBind</CODE> method for PLAIN authentication in which
* the target user does not exist in the server.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainNonExistentUser()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for PLAIN authentication in which
* the wrong password has been provided for the target user.
*
* @throws Exception If an unexpected problem occurs.
*/
public void testDoSASLBindPlainWrongPassword()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>doSASLBind</CODE> method for the case in which PLAIN
* authentication is enabled in the server and the password policy request
* control is included.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testDoSASLBindPlainWithPasswordPolicy()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for an
* unauthenticated client connection.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentityUnauthenticated()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after a simple anonymous bind.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentitySimpleAnonymous()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after a simple bind as a root user.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentitySimpleRootUser()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after a simple bind as a normal user.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentitySimpleTestUser()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after a SASL ANONYMOUS bind.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentitySASLAnonymous()
throws Exception
{
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after a CRAM-MD5 bind.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentityCRAMMD5()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after a DIGEST-MD5 bind.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentityDigestMD5()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password",
"ds-pwp-password-policy-dn: cn=Clear UserPassword Policy," +
"cn=Password Policies,cn=config");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after an EXTERNAL bind.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentityExternal()
throws Exception
{
"dn: cn=Test User,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User");
"password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
/**
* Tests the <CODE>requestAuthorizationIdentity</CODE> method for a a client
* connection after a PLAIN bind.
*
* @throws Exception If an unexpected problem occurs.
*/
@Test
public void testRequestAuthorizationIdentityPlain()
throws Exception
{
"dn: uid=test.user,o=test",
"objectClass: top",
"objectClass: person",
"objectClass: organizationalPerson",
"objectClass: inetOrgPerson",
"uid: test.user",
"givenName: Test",
"sn: User",
"cn: Test User",
"userPassword: password");
LDAPReader r = new LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
s.close();
}
private void getFQDN() {
try {
} catch(UnknownHostException ex) {
this.hostname = "localhost";
}
}
}