You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2010/09/20 21:55:12 UTC
svn commit: r999091 -
/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
Author: seelmann
Date: Mon Sep 20 19:55:12 2010
New Revision: 999091
URL: http://svn.apache.org/viewvc?rev=999091&view=rev
Log:
Added test to demonstrate DIRAPI-30 (Sporadic NullPointerException during SASL bind)
Modified:
directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java?rev=999091&r1=999090&r2=999091&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java (original)
+++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java Mon Sep 20 19:55:12 2010
@@ -22,7 +22,6 @@ package org.apache.directory.server.oper
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import java.lang.reflect.Field;
import java.net.InetAddress;
@@ -73,6 +72,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.message.spi.BinaryAttributeDetector;
import org.apache.directory.shared.ldap.name.DN;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
@@ -416,6 +416,51 @@ public class SaslBindIT extends Abstract
assertTrue( ArrayUtils.isEquals( "type3_test".getBytes(), provider.getType3Response() ) );
}
+
+ /**
+ * Test for DIRAPI-30 (Sporadic NullPointerException during SASL bind).
+ * Tests multiple connect/bind/unbind/disconnect.
+ */
+ @Ignore("Activate when DIRAPI-30 is solved")
+ @Test
+ public void testSequentialBinds() throws Exception
+ {
+ LdapNetworkConnection connection;
+ BindResponse resp;
+ Entry entry;
+ DN userDn = new DN( "uid=hnelson,ou=users,dc=example,dc=com" );
+
+ for ( int i = 0; i < 1000; i++ )
+ {
+ System.out.println( "try " + i );
+ // Digest-MD5
+ connection = new LdapNetworkConnection( "localhost", ldapServer.getPort() );
+ resp = connection.bindDigestMd5( userDn.getName(), "secret", null, ldapServer.getSaslRealms()
+ .get( 0 ) );
+ assertEquals( ResultCodeEnum.SUCCESS, resp.getLdapResult().getResultCode() );
+ entry = connection.lookup( userDn );
+ assertEquals( "hnelson", entry.get( "uid" ).getString() );
+ connection.close();
+
+ // Cram-MD5
+ connection = new LdapNetworkConnection( "localhost", ldapServer.getPort() );
+ resp = connection.bindCramMd5( userDn.getName(), "secret", null );
+ assertEquals( ResultCodeEnum.SUCCESS, resp.getLdapResult().getResultCode() );
+ entry = connection.lookup( userDn );
+ assertEquals( "hnelson", entry.get( "uid" ).getString() );
+ connection.close();
+
+ // GSSAPI
+ connection = new LdapNetworkConnection( "localhost", ldapServer.getPort() );
+ resp = connection.bindGssApi( userDn.getName(), "secret", ldapServer.getSaslRealms().get( 0 )
+ .toUpperCase(), "localhost", 6088 );
+ assertEquals( ResultCodeEnum.SUCCESS, resp.getLdapResult().getResultCode() );
+ entry = connection.lookup( userDn );
+ assertEquals( "hnelson", entry.get( "uid" ).getString() );
+ connection.close();
+ }
+ }
+
/**
* A NTLM client
*/