Author: jbonofre
Date: Sun Mar 24 23:56:01 2013
New Revision: 1460490

URL: http://svn.apache.org/r1460490
Log:
[KARAF-2237] Introduce timeout for keystore/truststore loading in the 
LDAPLoginModule

Modified:
    
karaf/branches/karaf-2.2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java

Modified: 
karaf/branches/karaf-2.2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
URL: 
http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java?rev=1460490&r1=1460489&r2=1460490&view=diff
==============================================================================
--- 
karaf/branches/karaf-2.2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
 (original)
+++ 
karaf/branches/karaf-2.2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
 Sun Mar 24 23:56:01 2013
@@ -62,6 +62,7 @@ public class LDAPLoginModule extends Abs
     public final static String SSL_KEYSTORE = "ssl.keystore";
     public final static String SSL_KEYALIAS = "ssl.keyalias";
     public final static String SSL_TRUSTSTORE = "ssl.truststore";
+    public final static String SSL_TIMEOUT = "ssl.timeout";
 
     public final static String DEFAULT_INITIAL_CONTEXT_FACTORY = 
"com.sun.jndi.ldap.LdapCtxFactory";
 
@@ -84,6 +85,7 @@ public class LDAPLoginModule extends Abs
     private String sslKeystore;
     private String sslKeyAlias;
     private String sslTrustStore;
+    private int sslTimeout = 10;
 
     public void initialize(Subject subject, CallbackHandler callbackHandler, 
Map<String, ?> sharedState, Map<String, ?> options) {
         super.initialize(subject, callbackHandler, options);
@@ -118,6 +120,9 @@ public class LDAPLoginModule extends Abs
         sslKeystore = (String) options.get(SSL_KEYSTORE);
         sslKeyAlias = (String) options.get(SSL_KEYALIAS);
         sslTrustStore = (String) options.get(SSL_TRUSTSTORE);
+        if (options.get(SSL_TIMEOUT) != null) {
+            sslTimeout = (Integer) options.get(SSL_TIMEOUT);
+        }
     }
 
     public boolean login() throws LoginException {
@@ -277,7 +282,7 @@ public class LDAPLoginModule extends Abs
             env.put("java.naming.ldap.factory.socket", 
ManagedSSLSocketFactory.class.getName());
             ref = 
bundleContext.getServiceReference(KeystoreManager.class.getName());
             KeystoreManager manager = (KeystoreManager) 
bundleContext.getService(ref);
-            SSLSocketFactory factory = manager.createSSLFactory(sslProvider, 
sslProtocol, sslAlgorithm, sslKeystore, sslKeyAlias, sslTrustStore);
+            SSLSocketFactory factory = manager.createSSLFactory(sslProvider, 
sslProtocol, sslAlgorithm, sslKeystore, sslKeyAlias, sslTrustStore, sslTimeout);
             ManagedSSLSocketFactory.setSocketFactory(factory);
             
Thread.currentThread().setContextClassLoader(ManagedSSLSocketFactory.class.getClassLoader());
         } catch (Exception e) {


Reply via email to