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 2013/04/25 12:36:24 UTC

svn commit: r1475698 - in /directory/apacheds/trunk: protocol-ldap/src/main/java/org/apache/directory/server/ldap/ protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ server-config/src/main/java/org/apache/directory/serve...

Author: kayyagari
Date: Thu Apr 25 10:36:23 2013
New Revision: 1475698

URL: http://svn.apache.org/r1475698
Log:
o make replication pinger thread's sleep time to be configurable (DIRSERVER-1831)
o allow cipher suites to be configurable (DIRSERVER-1584)

Modified:
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapServer.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/PingerThread.java
    directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/LdapServerBean.java
    directory/apacheds/trunk/server-config/src/main/resources/config.ldif
    directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/builder/ServiceBuilder.java

Modified: directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapServer.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapServer.java?rev=1475698&r1=1475697&r2=1475698&view=diff
==============================================================================
--- directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapServer.java (original)
+++ directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapServer.java Thu Apr 25 10:36:23 2013
@@ -256,7 +256,13 @@ public class LdapServer extends Director
 
     private KeyManagerFactory keyManagerFactory;
 
+    /** the time interval between subsequent pings to each replication provider */    
+    private int pingerSleepTime;
 
+    /** the list of cipher suites to be used in LDAPS and StartTLS */
+    private List<String> enabledCipherSuites = new ArrayList<String>();
+    
+    
     /**
      * Creates an LDAP protocol provider.
      */
@@ -436,7 +442,7 @@ public class LdapServer extends Director
             if ( dfcb.contains( sslFilterName ) )
             {
                 DefaultIoFilterChainBuilder newChain = ( DefaultIoFilterChainBuilder ) LdapsInitializer
-                    .init( keyManagerFactory );
+                    .init( this );
                 dfcb.replace( sslFilterName, newChain.get( sslFilterName ) );
                 newChain = null;
             }
@@ -477,7 +483,7 @@ public class LdapServer extends Director
 
             if ( transport.isSSLEnabled() )
             {
-                chain = LdapsInitializer.init( keyManagerFactory );
+                chain = LdapsInitializer.init( this );
             }
             else
             {
@@ -696,7 +702,7 @@ public class LdapServer extends Director
     {
         if ( ( replConsumers != null ) && ( replConsumers.size() > 0 ) )
         {
-            final PingerThread pingerThread = new PingerThread();
+            final PingerThread pingerThread = new PingerThread( pingerSleepTime );
             pingerThread.start();
 
             for ( final ReplicationConsumer consumer : replConsumers )
@@ -938,7 +944,7 @@ public class LdapServer extends Director
      */
     public void setMaxTimeLimit( int maxTimeLimit )
     {
-        this.maxTimeLimit = maxTimeLimit;
+        this.maxTimeLimit = maxTimeLimit; //TODO review the time parameters used all over the server and convert to seconds 
     }
 
 
@@ -1697,6 +1703,48 @@ public class LdapServer extends Director
 
 
     /**
+     * @return the number of seconds pinger thread sleeps between subsequent pings
+     */
+    public int getReplPingerSleepTime()
+    {
+        return pingerSleepTime;
+    }
+
+
+    /**
+     * The number of seconds pinger thread should sleep before pinging the providers
+     *  
+     * @param pingerSleepTime
+     */
+    public void setReplPingerSleepTime( int pingerSleepTime )
+    {
+        this.pingerSleepTime = pingerSleepTime;
+    }
+
+
+    /**
+     * Gives the list of enabled cipher suites
+     * 
+     * @return
+     */
+    public List<String> getEnabledCipherSuites()
+    {
+        return enabledCipherSuites;
+    }
+
+
+    /**
+     * Sets the list of cipher suites to be used in LDAPS and StartTLS
+     * 
+     * @param enabledCipherSuites if null the default cipher suites will be used
+     */
+    public void setEnabledCipherSuites( List<String> enabledCipherSuites )
+    {
+        this.enabledCipherSuites = enabledCipherSuites;
+    }
+
+
+    /**
      * @see Object#toString()
      */
     public String toString()

Modified: directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/PingerThread.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/PingerThread.java?rev=1475698&r1=1475697&r2=1475698&view=diff
==============================================================================
--- directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/PingerThread.java (original)
+++ directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/PingerThread.java Thu Apr 25 10:36:23 2013
@@ -45,12 +45,23 @@ public class PingerThread extends Thread
     /** A flag to stop the pinger */
     private boolean stop = false;
 
+    /** the time interval before this thread pings each replication provider. Default value is 5 seconds */
+    private long sleepTime = 5000;
 
     /**
      * Create a new instance of this thread.
+     * 
+     * @param sleepSec the number of seconds pinger thread should sleep before pinging the providers
      */
-    public PingerThread()
+    public PingerThread( int sleepSec )
     {
+        if( sleepSec > 0 )
+        {
+            sleepTime = sleepSec * 1000;
+        }
+        
+        CONSUMER_LOG.info( "Configured pinger thread to sleep for {} seconds", ( sleepTime / 1000 ) );
+        
         setDaemon( true );
     }
 
@@ -76,7 +87,7 @@ public class PingerThread extends Thread
                     consumer.ping();
                 }
 
-                Thread.sleep( 5000 );
+                Thread.sleep( sleepTime );
             }
         }
         catch ( InterruptedException ie )

Modified: directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/LdapServerBean.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/LdapServerBean.java?rev=1475698&r1=1475697&r2=1475698&view=diff
==============================================================================
--- directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/LdapServerBean.java (original)
+++ directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/LdapServerBean.java Thu Apr 25 10:36:23 2013
@@ -90,6 +90,13 @@ public class LdapServerBean extends DSBa
     @ConfigurationElement(objectClass = "ads-extendedOpHandler", container = "extendedOpHandlers", isOptional = true)
     private List<ExtendedOpHandlerBean> extendedOpHandlers = new ArrayList<ExtendedOpHandlerBean>();
 
+    /** the time interval between subsequent pings to each replication provider */
+    @ConfigurationElement(attributeType = "ads-replPingerSleep")
+    private int replPingerSleep;
+
+    /** the list of cipher suites to be used in LDAPS and StartTLS */
+    @ConfigurationElement(attributeType = "ads-enabledCipherSuites", isOptional = true)
+    private List<String> enabledCipherSuites = new ArrayList<String>();
 
     /**
      * Create a new LdapServerBean instance
@@ -403,7 +410,13 @@ public class LdapServerBean extends DSBa
         sb.append( tabs ).append( "  sasl host : " ).append( saslHost ).append( '\n' );
         sb.append( toString( tabs, "  confidentiality required", confidentialityRequired ) );
         sb.append( toString( tabs, "  enable replication provider", replReqHandler ) );
-
+        sb.append( toString( tabs, "  Pinger thread sleep time(in sec.)", replPingerSleep ) );
+        
+        if( ( enabledCipherSuites != null ) && !enabledCipherSuites.isEmpty() )
+        {
+            sb.append( toString( tabs, "  enabled cipher suites", enabledCipherSuites.toString() ) );
+        }
+        
         if ( ( extendedOpHandlers != null ) && ( extendedOpHandlers.size() > 0 ) )
         {
             sb.append( tabs ).append( "  extended operation handlers :\n" );
@@ -467,6 +480,42 @@ public class LdapServerBean extends DSBa
     }
 
 
+    public int getReplPingerSleep()
+    {
+        return replPingerSleep;
+    }
+
+
+    public void setReplPingerSleep( int replPingerSleep )
+    {
+        this.replPingerSleep = replPingerSleep;
+    }
+
+
+    public List<String> getEnabledCipherSuites()
+    {
+        return enabledCipherSuites;
+    }
+
+
+    public void setEnabledCipherSuites( List<String> enabledCipherSuites )
+    {
+        this.enabledCipherSuites = enabledCipherSuites;
+    }
+
+    
+    /**
+     * @param enabledCipherSuites the cipher suites to add
+     */
+    public void addEnabledCipherSuites( String... enabledCipherSuites )
+    {
+        for ( String cs : enabledCipherSuites )
+        {
+            this.enabledCipherSuites.add( cs );
+        }
+    }
+
+    
     /**
      * {@inheritDoc}
      */

Modified: directory/apacheds/trunk/server-config/src/main/resources/config.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/resources/config.ldif?rev=1475698&r1=1475697&r2=1475698&view=diff
==============================================================================
--- directory/apacheds/trunk/server-config/src/main/resources/config.ldif (original)
+++ directory/apacheds/trunk/server-config/src/main/resources/config.ldif Thu Apr 25 10:36:23 2013
@@ -661,8 +661,9 @@ ads-saslPrincipal: ldap/ldap.example.com
 ads-saslRealms: example.com
 ads-saslRealms: apache.org
 ads-searchBaseDN: ou=users,ou=system
-ads-enabled: TRUE
 ads-replEnabled: true
+ads-replPingerSleep: 5
+ads-enabled: TRUE
 
 dn: ou=replConsumers,ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config
 objectClass: organizationalUnit

Modified: directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/builder/ServiceBuilder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/builder/ServiceBuilder.java?rev=1475698&r1=1475697&r2=1475698&view=diff
==============================================================================
--- directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/builder/ServiceBuilder.java (original)
+++ directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/builder/ServiceBuilder.java Thu Apr 25 10:36:23 2013
@@ -970,6 +970,15 @@ public class ServiceBuilder
         // Sasl realm
         ldapServer.setSaslRealms( ldapServerBean.getLdapServerSaslRealms() );
 
+        // Relplication pinger thread sleep time
+        ldapServer.setReplPingerSleepTime( ldapServerBean.getReplPingerSleep() );
+        
+        // Enabled cipher suites
+        if( ldapServerBean.getEnabledCipherSuites() != null )
+        {
+            ldapServer.setEnabledCipherSuites( ldapServerBean.getEnabledCipherSuites() );
+        }
+        
         // The transports
         Transport[] transports = createTransports( ldapServerBean.getTransports() );
         ldapServer.setTransports( transports );