You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/04/25 10:56:06 UTC

svn commit: r1676001 - in /directory/apacheds/trunk: core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java

Author: elecharny
Date: Sat Apr 25 08:56:06 2015
New Revision: 1676001

URL: http://svn.apache.org/r1676001
Log:
Fixed issue DIRSERVER-1934 : the controls are now injected into the BindOperationContext instance

Modified:
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java?rev=1676001&r1=1676000&r2=1676001&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java Sat Apr 25 08:56:06 2015
@@ -1193,6 +1193,11 @@ public class LdapCoreSessionConnection e
         bindContext.setDn( bindRequest.getDn().apply( directoryService.getSchemaManager() ) );
         bindContext.setInterceptors( directoryService.getInterceptors( OperationEnum.BIND ) );
 
+        for ( Control control : bindRequest.getControls().values() )
+        {
+            bindContext.addRequestControl( control );
+        }
+
         OperationManager operationManager = directoryService.getOperationManager();
 
         BindResponse bindResp = new BindResponseImpl( newId );

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java?rev=1676001&r1=1676000&r2=1676001&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java Sat Apr 25 08:56:06 2015
@@ -27,41 +27,45 @@ import org.apache.directory.server.core.
 import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 
-@RunWith( FrameworkRunner.class )
-@CreateLdapServer( transports = {
-        @CreateTransport( protocol = "LDAP" ) } )
+@RunWith(FrameworkRunner.class)
+@CreateLdapServer(transports =
+    {
+        @CreateTransport(protocol = "LDAP") })
 // disable changelog, for more info see DIRSERVER-1528
-@CreateDS( enableChangeLog = false, name = "LdapCoreSessionConnectionTest" )
+@CreateDS(enableChangeLog = false, name = "LdapCoreSessionConnectionTest")
 @ApplyLdifs(
-{
+    {
         // Add a non admin user
         "dn: cn=user,ou=system",
         "objectClass: top",
         "objectClass: person",
         "cn: user",
         "userPassword: secret",
-        "sn: user" } )
-public class LdapCoreSessionConnectionTest extends AbstractLdapTestUnit {
+        "sn: user" })
+public class LdapCoreSessionConnectionTest extends AbstractLdapTestUnit
+{
     private static Logger logger = LoggerFactory.getLogger( LdapCoreSessionConnection.class );
     private static final LdapApiService codec = LdapApiServiceFactory.getSingleton();
     private static final PasswordPolicyDecorator passwordPolicyRequestControl =
-            new PasswordPolicyDecorator( codec, new PasswordPolicyImpl() );
+        new PasswordPolicyDecorator( codec, new PasswordPolicyImpl() );
+
 
     @Before
-    public void setPwdPolicy() throws LdapException {
+    public void setPwdPolicy() throws LdapException
+    {
         PasswordPolicyConfiguration policyConfig = new PasswordPolicyConfiguration();
         policyConfig.setPwdCheckQuality( CheckQualityEnum.CHECK_REJECT ); // DO NOT allow the password if its quality can't be checked
 
-        Dn policyDn = new Dn( "ads-pwdId=test,ou=passwordPolicies,ads-interceptorId=authenticationInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config" );
+        Dn policyDn = new Dn(
+            "ads-pwdId=test,ou=passwordPolicies,ads-interceptorId=authenticationInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config" );
         PpolicyConfigContainer policyContainer = new PpolicyConfigContainer();
-        policyContainer.addPolicy(policyDn, policyConfig);
+        policyContainer.addPolicy( policyDn, policyConfig );
         policyContainer.setDefaultPolicyDn( policyDn );
 
         AuthenticationInterceptor authenticationInterceptor = ( AuthenticationInterceptor ) getService()
@@ -69,10 +73,13 @@ public class LdapCoreSessionConnectionTe
         authenticationInterceptor.setPwdPolicies( policyContainer );
     }
 
+
     @Test
-    public void testBindWithLdapNetworkConnection() throws LdapException {
+    public void testBindWithLdapNetworkConnection() throws LdapException
+    {
         LdapNetworkConnection connection = null;
-        try {
+        try
+        {
             connection = new LdapNetworkConnection( "localhost", getLdapServer().getPort() );
 
             BindRequest bindRequest = new BindRequestImpl();
@@ -83,19 +90,23 @@ public class LdapCoreSessionConnectionTe
             BindResponse bindResponse = connection.bind( bindRequest );
             Control responseControl = bindResponse.getControls().get( passwordPolicyRequestControl.getOid() );
             assertNotNull( responseControl );
-            PasswordPolicy passwordPolicy = ((PasswordPolicyDecorator) responseControl).getDecorated();
+            PasswordPolicy passwordPolicy = ( ( PasswordPolicyDecorator ) responseControl ).getDecorated();
             assertNotNull( passwordPolicy );
         }
-        finally {
+        finally
+        {
             safeClose( connection );
         }
     }
 
-    @Ignore
+
+    //@Ignore
     @Test
-    public void testBindWithLdapCoreSessionConnection() throws LdapException {
+    public void testBindWithLdapCoreSessionConnection() throws LdapException
+    {
         LdapCoreSessionConnection connection = null;
-        try {
+        try
+        {
             connection = new LdapCoreSessionConnection();
             connection.setDirectoryService( getService() );
 
@@ -107,20 +118,26 @@ public class LdapCoreSessionConnectionTe
             BindResponse bindResponse = connection.bind( bindRequest );
             Control responseControl = bindResponse.getControls().get( passwordPolicyRequestControl.getOid() );
             assertNotNull( responseControl );
-            PasswordPolicy passwordPolicy = ((PasswordPolicyDecorator) responseControl).getDecorated();
+            PasswordPolicy passwordPolicy = ( ( PasswordPolicyDecorator ) responseControl ).getDecorated();
             assertNotNull( passwordPolicy );
         }
-        finally {
+        finally
+        {
             safeClose( connection );
         }
     }
 
-    private static void safeClose( LdapConnection... connections ) {
-        for ( LdapConnection connection : connections ) {
-            try {
+
+    private static void safeClose( LdapConnection... connections )
+    {
+        for ( LdapConnection connection : connections )
+        {
+            try
+            {
                 connection.close();
             }
-            catch ( Exception e ) {
+            catch ( Exception e )
+            {
                 logger.warn( "close failed, possible connection leak: {}", e.getMessage() );
                 logger.debug( "close failed, possible connection leak: ", e );
             }