You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2005/09/12 01:18:28 UTC

svn commit: r280210 - in /directory: apacheds/trunk/main/src/test/org/apache/ldap/server/ protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/

Author: akarasulu
Date: Sun Sep 11 16:18:16 2005
New Revision: 280210

URL: http://svn.apache.org/viewcvs?rev=280210&view=rev
Log:
changes ...

 o added test to reproduce DIREVE-239
 o DisableAnonBindTest renamed to MiscTest so more tests can be put into it
 o fixed protocol provider problem for DIREVE-239 here:

     http://issues.apache.org/jira/browse/DIREVE-239


Added:
    directory/apacheds/trunk/main/src/test/org/apache/ldap/server/MiscTest.java
      - copied, changed from r280052, directory/apacheds/trunk/main/src/test/org/apache/ldap/server/DisableAnonBindTest.java
Removed:
    directory/apacheds/trunk/main/src/test/org/apache/ldap/server/DisableAnonBindTest.java
Modified:
    directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/AbandonHandler.java
    directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/SessionRegistry.java

Copied: directory/apacheds/trunk/main/src/test/org/apache/ldap/server/MiscTest.java (from r280052, directory/apacheds/trunk/main/src/test/org/apache/ldap/server/DisableAnonBindTest.java)
URL: http://svn.apache.org/viewcvs/directory/apacheds/trunk/main/src/test/org/apache/ldap/server/MiscTest.java?p2=directory/apacheds/trunk/main/src/test/org/apache/ldap/server/MiscTest.java&p1=directory/apacheds/trunk/main/src/test/org/apache/ldap/server/DisableAnonBindTest.java&r1=280052&r2=280210&rev=280210&view=diff
==============================================================================
--- directory/apacheds/trunk/main/src/test/org/apache/ldap/server/DisableAnonBindTest.java (original)
+++ directory/apacheds/trunk/main/src/test/org/apache/ldap/server/MiscTest.java Sun Sep 11 16:18:16 2005
@@ -22,21 +22,22 @@
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NoPermissionException;
+import javax.naming.NamingEnumeration;
+import javax.naming.directory.*;
 
 
 /**
- * A set of simple tests to make sure simple authentication is working as it
- * should.
+ * A set of miscellanous tests.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public class DisableAnonBindTest extends AbstractServerTest
+public class MiscTest extends AbstractServerTest
 {
     /**
      * Cleans up old database files on creation.
      */
-    public DisableAnonBindTest()
+    public MiscTest()
     {
     }
 
@@ -48,7 +49,10 @@
      */
     public void setUp() throws Exception
     {
-        configuration.setAllowAnonymousAccess( false );
+        if ( this.getName().equals( "testDisableAnonymousBinds" ) )
+        {
+            configuration.setAllowAnonymousAccess( false );
+        }
         super.setUp();
     }
 
@@ -77,5 +81,40 @@
         catch ( NoPermissionException e )
         {
         }
+    }
+
+
+    /**
+     * Reproduces the problem with
+     * <a href="http://issues.apache.org/jira/browse/DIREVE-239">DIREVE-239</a>.
+     *
+     * @throws Exception if anything goes wrong
+     */
+    public void testAdminAccessBug() throws Exception
+    {
+        // Use the SUN JNDI provider to hit server port and bind as anonymous
+
+        final Hashtable env = new Hashtable();
+
+        env.put( Context.PROVIDER_URL, "ldap://localhost:" + port );
+        env.put("java.naming.ldap.version", "3");
+        env.put( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
+
+        Attributes attributes = new BasicAttributes();
+        Attribute objectClass = new BasicAttribute( "objectClass" );
+        objectClass.add( "top" );
+        objectClass.add( "organizationalUnit" );
+        attributes.put( objectClass );
+        attributes.put( "ou", "blah" );
+        InitialDirContext ctx = new InitialDirContext( env );
+        ctx.createSubcontext( "ou=blah,ou=system", attributes );
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.OBJECT_SCOPE );
+        controls.setReturningAttributes( new String[] { "+" } );
+        NamingEnumeration list = ctx.search( "ou=blah,ou=system", "(objectClass=*)", controls );
+        SearchResult result = ( SearchResult ) list.next();
+        list.close();
+        Attribute creatorsName = result.getAttributes().get( "creatorsName" );
+        assertEquals( "", creatorsName.get() );
     }
 }

Modified: directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/AbandonHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/AbandonHandler.java?rev=280210&r1=280209&r2=280210&view=diff
==============================================================================
--- directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/AbandonHandler.java (original)
+++ directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/AbandonHandler.java Sun Sep 11 16:18:16 2005
@@ -21,6 +21,8 @@
 import org.apache.ldap.common.message.AbandonRequest;
 import org.apache.mina.protocol.ProtocolSession;
 import org.apache.mina.protocol.handler.MessageHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -31,6 +33,8 @@
  */
 public class AbandonHandler implements MessageHandler
 {
+    private static final Logger log = LoggerFactory.getLogger( AbandonHandler.class );
+
     public void messageReceived( ProtocolSession session, Object request )
     {
         AbandonRequest req = ( AbandonRequest ) request;
@@ -41,6 +45,6 @@
             return;
         }
         
-        throw new NotImplementedException( "don't know how to do this just yet" );
+        log.warn( "Got abandon request from client but I don't know how to do this just yet" );
     }
 }

Modified: directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/SessionRegistry.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/SessionRegistry.java?rev=280210&r1=280209&r2=280210&view=diff
==============================================================================
--- directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/SessionRegistry.java (original)
+++ directory/protocol-providers/ldap/trunk/src/main/java/org/apache/ldap/server/protocol/SessionRegistry.java Sun Sep 11 16:18:16 2005
@@ -141,8 +141,6 @@
                 throw new LdapNoPermissionException( "Anonymous binds have been disabled!" );
             }
 
-            Hashtable cloned = ( Hashtable ) env.clone();
-
             if ( env.containsKey( "server.use.factory.instance" ) )
             {
                 InitialContextFactory factory = ( InitialContextFactory ) env.get( "server.use.factory.instance" );
@@ -156,6 +154,10 @@
             }
             else
             {
+                Hashtable cloned = ( Hashtable ) env.clone();
+                cloned.put( Context.SECURITY_AUTHENTICATION, "none" );
+                cloned.remove( Context.SECURITY_PRINCIPAL );
+                cloned.remove( Context.SECURITY_CREDENTIALS );
                 ctx = new InitialLdapContext( cloned, connCtls );
             }
         }