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/25 13:21:53 UTC

svn commit: r948003 - in /directory/apacheds/trunk/default-config/src/main/java/org/apache/directory/server/config: ConfigPartitionReader.java ConfigSchemaConstants.java

Author: kayyagari
Date: Tue May 25 11:21:52 2010
New Revision: 948003

URL: http://svn.apache.org/viewvc?rev=948003&view=rev
Log:
o added support for adding extended operation handlers
o fixed an issue with processing a disabled entry's config

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=948003&r1=948002&r2=948003&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 Tue May 25 11:21:52 2010
@@ -59,6 +59,7 @@ import org.apache.directory.server.integ
 import org.apache.directory.server.integration.http.WebApp;
 import org.apache.directory.server.kerberos.kdc.KdcServer;
 import org.apache.directory.server.kerberos.shared.crypto.encryption.EncryptionType;
+import org.apache.directory.server.ldap.ExtendedOperationHandler;
 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;
@@ -220,6 +221,7 @@ public class ConfigPartitionReader
             server.setSearchBaseDn( searchBaseAttr.getString() );
         }
         
+        // read the SASL mechanism handlers' configuration
         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 );
@@ -237,6 +239,28 @@ public class ConfigPartitionReader
         
         cursor.close();
         
+        // read the extnded operation handlers' config
+        filter = new EqualityNode<String>( SchemaConstants.OBJECT_CLASS_AT, new StringValue(
+            ConfigSchemaConstants.ADS_LDAP_SERVER_EXT_OP_HANDLER_OC ) );
+        cursor = se.cursor( ldapServerEntry.getDn(), AliasDerefMode.NEVER_DEREF_ALIASES, filter, controls );
+        
+        while( cursor.next() )
+        {
+            ForwardIndexEntry<Long, Entry, Long> forwardExtOpEntry = ( ForwardIndexEntry<Long, Entry, Long> ) cursor.get();
+            Entry extOpHandlerEntry = configPartition.lookup( forwardExtOpEntry.getId() );
+            
+            if( !isEnabled( extOpHandlerEntry ) )
+            {
+                continue;
+            }
+            
+            Class<?> extendedOpClass = Class.forName( extOpHandlerEntry.get( ConfigSchemaConstants.ADS_LDAP_SERVER_EXT_OP_HANDLER_FQCN ).getString() );
+            ExtendedOperationHandler extOpHandler = ( ExtendedOperationHandler ) extendedOpClass.newInstance();
+            server.addExtendedOperationHandler( extOpHandler );
+        }
+        
+        cursor.close();
+        
         return server;
     }
 
@@ -969,6 +993,11 @@ public class ConfigPartitionReader
             ForwardIndexEntry<Long, Entry, Long> forwardEntry = ( ForwardIndexEntry<Long, Entry, Long> ) cursor
                 .get();
             Entry interceptorEntry = configPartition.lookup( forwardEntry.getId() );
+            
+            if( ! isEnabled( interceptorEntry ) )
+            {
+                continue;
+            }
 
             String id = getString( ConfigSchemaConstants.ADS_INTERCEPTOR_ID, interceptorEntry );
             String fqcn = getString( ConfigSchemaConstants.ADS_INTERCEPTOR_CLASSNAME, interceptorEntry );

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=948003&r1=948002&r2=948003&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 Tue May 25 11:21:52 2010
@@ -218,4 +218,8 @@ public interface ConfigSchemaConstants
     String ADS_LDAP_SERVER_SASL_MECH_CLASS_NAME = "ads-ldapServerSaslMechClassName";
     
     String ADS_LDAP_SERVER_NTLM_MECH_PROVIDER = "ads-ldapServerNtlmMechProvider";
+    
+    String ADS_LDAP_SERVER_EXT_OP_HANDLER_OC = "ads-ldapServerExtendedOpHandler";
+    
+    String ADS_LDAP_SERVER_EXT_OP_HANDLER_FQCN = "ads-ldapServerExtendedOpHandlerClass";
 }