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/05/24 22:56:48 UTC

svn commit: r947806 - in /directory/apacheds/trunk/default-config/src/main: java/org/apache/directory/server/config/ resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmec...

Author: kayyagari
Date: Mon May 24 20:56:48 2010
New Revision: 947806

URL: http://svn.apache.org/viewvc?rev=947806&view=rev
Log:
added default SASL mechanism handlers

Added:
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms.ldif
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=cram-md5.ldif
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=digest-md5.ldif
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gss-spnego.ldif
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gssapi.ldif
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=ntlm.ldif
    directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=simple.ldif
Modified:
    directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
    directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigSchemaConstants.java

Modified: directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java?rev=947806&r1=947805&r2=947806&view=diff
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java (original)
+++ directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java Mon May 24 20:56:48 2010
@@ -60,6 +60,8 @@ import org.apache.directory.server.integ
 import org.apache.directory.server.kerberos.kdc.KdcServer;
 import org.apache.directory.server.kerberos.shared.crypto.encryption.EncryptionType;
 import org.apache.directory.server.ldap.LdapServer;
+import org.apache.directory.server.ldap.handlers.bind.MechanismHandler;
+import org.apache.directory.server.ldap.handlers.bind.ntlm.NtlmMechanismHandler;
 import org.apache.directory.server.ldap.replication.ReplicationProvider;
 import org.apache.directory.server.ldap.replication.SyncreplConfiguration;
 import org.apache.directory.server.ntp.NtpServer;
@@ -218,6 +220,23 @@ public class ConfigPartitionReader
             server.setSearchBaseDn( searchBaseAttr.getString() );
         }
         
+        filter = new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT, new StringValue(
+            ConfigSchemaConstants.ADS_LDAP_SERVER_SASL_MECH_HANDLER_OC ) );
+        cursor = se.cursor( ldapServerEntry.getDn(), AliasDerefMode.NEVER_DEREF_ALIASES, filter, controls );
+        
+        while( cursor.next() )
+        {
+            ForwardIndexEntry<Long, Entry, Long> forwardSaslMechEntry = ( ForwardIndexEntry<Long, Entry, Long> ) cursor.get();
+            Entry saslMechHandlerEntry = configPartition.lookup( forwardSaslMechEntry.getId() );
+            if( isEnabled( saslMechHandlerEntry ) )
+            {
+                String mechanism = getString( ConfigSchemaConstants.ADS_LDAP_SERVER_SASL_MECH_NAME, saslMechHandlerEntry );
+                server.addSaslMechanismHandler( mechanism, getSaslMechHandler( saslMechHandlerEntry ) );
+            }
+        }
+        
+        cursor.close();
+        
         return server;
     }
 
@@ -1334,6 +1353,36 @@ public class ConfigPartitionReader
         return webApps;
     }
 
+    
+    /**
+     * Loads and instantiates a MechanismHandler from the configuration entry
+     *
+     * @param saslMechHandlerEntry the entry of OC type {@link ConfigSchemaConstants#ADS_LDAP_SERVER_SASL_MECH_HANDLER_OC}
+     * @return an instance of the MechanismHandler type
+     * @throws Exception
+     */
+    private MechanismHandler getSaslMechHandler( Entry saslMechHandlerEntry ) throws Exception
+    {
+        String mechClassName = saslMechHandlerEntry.get( ConfigSchemaConstants.ADS_LDAP_SERVER_SASL_MECH_CLASS_NAME ).getString();
+        
+        Class<?> mechClass = Class.forName( mechClassName );
+        
+        MechanismHandler handler = ( MechanismHandler ) mechClass.newInstance();
+        
+        if( mechClass == NtlmMechanismHandler.class )
+        {
+            EntryAttribute ntlmHandlerAttr = saslMechHandlerEntry.get( ConfigSchemaConstants.ADS_LDAP_SERVER_NTLM_MECH_PROVIDER );
+            if( ntlmHandlerAttr != null )
+            {
+                NtlmMechanismHandler ntlmHandler = ( NtlmMechanismHandler ) handler;
+                ntlmHandler.setNtlmProviderFqcn( ntlmHandlerAttr.getString() );
+            }
+        }
+        
+        return handler;
+    }
+    
+    
     /**
      * internal class used for holding the Interceptor classname and order configuration
      */

Modified: directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigSchemaConstants.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigSchemaConstants.java?rev=947806&r1=947805&r2=947806&view=diff
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigSchemaConstants.java (original)
+++ directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config/ConfigSchemaConstants.java Mon May 24 20:56:48 2010
@@ -210,4 +210,12 @@ public interface ConfigSchemaConstants
     String ADS_REPL_PROVIDER_OC = "ads-replProvider";
     
     String ADS_REPL_PROVIDER_IMPL = "ads-replProviderImpl";
+    
+    String ADS_LDAP_SERVER_SASL_MECH_HANDLER_OC = "ads-ldapServerSaslMechanismHandler";
+    
+    String ADS_LDAP_SERVER_SASL_MECH_NAME = "ads-ldapServerSaslMechName";
+    
+    String ADS_LDAP_SERVER_SASL_MECH_CLASS_NAME = "ads-ldapServerSaslMechClassName";
+    
+    String ADS_LDAP_SERVER_NTLM_MECH_PROVIDER = "ads-ldapServerNtlmMechProvider";
 }

Added: directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/resources/config/ou%3Dconfig/ou%3Dservers/ads-serverid%3Dldapserver/ou%3Dsaslmechanisms.ldif?rev=947806&view=auto
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms.ldif (added)
+++ directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms.ldif Mon May 24 20:56:48 2010
@@ -0,0 +1,4 @@
+dn: ou=saslmechanisms,ads-serverId=ldapServer,ou=servers,ou=config
+objectClass: organizationalUnit
+objectClass: top
+ou: saslmechanisms
\ No newline at end of file

Added: directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=cram-md5.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/resources/config/ou%3Dconfig/ou%3Dservers/ads-serverid%3Dldapserver/ou%3Dsaslmechanisms/ads-ldapServerSaslMechName%3Dcram-md5.ldif?rev=947806&view=auto
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=cram-md5.ldif (added)
+++ directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=cram-md5.ldif Mon May 24 20:56:48 2010
@@ -0,0 +1,6 @@
+version: 1
+dn: ads-ldapServerSaslMechName=cram-md5,ou=saslmechanisms,ads-serverId=ldapServer,ou=servers,ou=config
+objectClass: ads-ldapServerSaslMechanismHandler
+objectClass: top
+ads-ldapServerSaslMechClassName: org.apache.directory.server.ldap.handlers.bind.cramMD5.CramMd5MechanismHandler
+ads-ldapServerSaslMechName: cram-md5
\ No newline at end of file

Added: directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=digest-md5.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/resources/config/ou%3Dconfig/ou%3Dservers/ads-serverid%3Dldapserver/ou%3Dsaslmechanisms/ads-ldapServerSaslMechName%3Ddigest-md5.ldif?rev=947806&view=auto
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=digest-md5.ldif (added)
+++ directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=digest-md5.ldif Mon May 24 20:56:48 2010
@@ -0,0 +1,6 @@
+version: 1
+dn: ads-ldapServerSaslMechName=digest-md5,ou=saslmechanisms,ads-serverId=ldapServer,ou=servers,ou=config
+objectClass: ads-ldapServerSaslMechanismHandler
+objectClass: top
+ads-ldapserversaslmechclassname: org.apache.directory.server.ldap.handlers.bind.digestMD5.DigestMd5MechanismHandler
+ads-ldapServerSaslMechName: digest-md5

Added: directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gss-spnego.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/resources/config/ou%3Dconfig/ou%3Dservers/ads-serverid%3Dldapserver/ou%3Dsaslmechanisms/ads-ldapServerSaslMechName%3Dgss-spnego.ldif?rev=947806&view=auto
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gss-spnego.ldif (added)
+++ directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gss-spnego.ldif Mon May 24 20:56:48 2010
@@ -0,0 +1,7 @@
+version: 1
+dn: ads-ldapServerSaslMechName=gss-spnego,ou=saslmechanisms,ads-serverId=ldapServer,ou=servers,ou=config
+objectClass: ads-ldapServerSaslMechanismHandler
+objectClass: top
+ads-ldapserversaslmechclassname: org.apache.directory.server.ldap.handlers.bind.ntlm.NtlmMechanismHandler
+ads-ldapServerSaslMechName: gss-spnego
+ads-ldapServerNtlmMechProvider: com.foo.Bar

Added: directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gssapi.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/resources/config/ou%3Dconfig/ou%3Dservers/ads-serverid%3Dldapserver/ou%3Dsaslmechanisms/ads-ldapServerSaslMechName%3Dgssapi.ldif?rev=947806&view=auto
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gssapi.ldif (added)
+++ directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=gssapi.ldif Mon May 24 20:56:48 2010
@@ -0,0 +1,6 @@
+version: 1
+dn: ads-ldapServerSaslMechName=gssapi,ou=saslmechanisms,ads-serverId=ldapServer,ou=servers,ou=config
+objectClass: ads-ldapServerSaslMechanismHandler
+objectClass: top
+ads-ldapserversaslmechclassname: org.apache.directory.server.ldap.handlers.bind.gssapi.GssapiMechanismHandler
+ads-ldapServerSaslMechName: gssapi

Added: directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=ntlm.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/resources/config/ou%3Dconfig/ou%3Dservers/ads-serverid%3Dldapserver/ou%3Dsaslmechanisms/ads-ldapServerSaslMechName%3Dntlm.ldif?rev=947806&view=auto
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=ntlm.ldif (added)
+++ directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=ntlm.ldif Mon May 24 20:56:48 2010
@@ -0,0 +1,7 @@
+version: 1
+dn: ads-ldapServerSaslMechName=ntlm,ou=saslmechanisms,ads-serverId=ldapServer,ou=servers,ou=config
+objectClass: ads-ldapServerSaslMechanismHandler
+objectClass: top
+ads-ldapserversaslmechclassname: org.apache.directory.server.ldap.handlers.bind.ntlm.NtlmMechanismHandler
+ads-ldapServerSaslMechName: ntlm
+ads-ldapServerNtlmMechProvider: com.foo.Bar

Added: directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=simple.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/default-config/src/main/resources/config/ou%3Dconfig/ou%3Dservers/ads-serverid%3Dldapserver/ou%3Dsaslmechanisms/ads-ldapServerSaslMechName%3Dsimple.ldif?rev=947806&view=auto
==============================================================================
--- directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=simple.ldif (added)
+++ directory/apacheds/trunk/default-config/src/main/resources/config/ou=config/ou=servers/ads-serverid=ldapserver/ou=saslmechanisms/ads-ldapServerSaslMechName=simple.ldif Mon May 24 20:56:48 2010
@@ -0,0 +1,6 @@
+version: 1
+dn: ads-ldapServerSaslMechName=simple,ou=saslmechanisms,ads-serverId=ldapServer,ou=servers,ou=config
+objectClass: ads-ldapServerSaslMechanismHandler
+objectClass: top
+ads-ldapserversaslmechclassname: org.apache.directory.server.ldap.handlers.bind.SimpleMechanismHandler
+ads-ldapServerSaslMechName: simple