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) {