You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2010/10/19 00:17:56 UTC

svn commit: r1024045 - in /directory/apacheds/trunk: ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java

Author: kayyagari
Date: Mon Oct 18 22:17:56 2010
New Revision: 1024045

URL: http://svn.apache.org/viewvc?rev=1024045&view=rev
Log:
o applied patch provided by Victor Antonovich for DIRSERVER-1548
o added a test case to check the intended behaviour of the bind handler

Modified:
    directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java

Modified: directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java?rev=1024045&r1=1024044&r2=1024045&view=diff
==============================================================================
--- directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java (original)
+++ directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java Mon Oct 18 22:17:56 2010
@@ -448,4 +448,26 @@ public class SimpleBindRequestTest exten
         assertEquals( 2, bindResponse.getMessageId() );
         assertTrue( connection.isAuthenticated() );
     }
+    
+    
+    /**
+     * DIRSERVER-1548
+     */
+    @Test
+    public void testSimpleBindInvalidFwdByValidOnSameCon() throws Exception
+    {
+        connection.setTimeOut( Integer.MAX_VALUE );
+        BindResponse response = connection.bind( "uid=admin,ou=system", "wrongpwd" );
+        LdapResult ldapResult = response.getLdapResult();
+        assertEquals( ResultCodeEnum.INVALID_CREDENTIALS, ldapResult.getResultCode() );
+        assertEquals( 1, response.getMessageId() );
+        assertFalse( connection.isAuthenticated() );
+        
+        response = connection.bind( "uid=admin,ou=system", "secret" );
+        ldapResult = response.getLdapResult();
+        assertEquals( ResultCodeEnum.SUCCESS, ldapResult.getResultCode() );
+        assertEquals( 2, response.getMessageId() );
+        assertTrue( connection.isAuthenticated() );
+    }
+
 }

Modified: directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java?rev=1024045&r1=1024044&r2=1024045&view=diff
==============================================================================
--- directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java (original)
+++ directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java Mon Oct 18 22:17:56 2010
@@ -241,6 +241,14 @@ public class BindHandler extends LdapReq
             bindRequest.getResultResponse().addAllControls( bindContext.getResponseControls() );
             ldapSession.getIoSession().write( bindRequest.getResultResponse() );
         }
+        finally
+        {
+            // Reset LDAP session bind status to anonymous if authentication failed
+            if ( !ldapSession.isAuthenticated() )
+            {
+                ldapSession.setAnonymous();
+            }
+        }
     }