Skip to content

Commit fca41bf

Browse files
committed
Fixed bug: CLOUDSTACK-7214 added a config for ldap connection read timeout.
1 parent 92c70f0 commit fca41bf

3 files changed

Lines changed: 199 additions & 153 deletions

File tree

plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapConfiguration.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,18 @@
2222
import javax.naming.directory.SearchControls;
2323

2424
import org.apache.cloudstack.api.command.LdapListConfigurationCmd;
25+
import org.apache.cloudstack.framework.config.ConfigKey;
26+
import org.apache.cloudstack.framework.config.Configurable;
2527
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
2628

2729
import com.cloud.utils.Pair;
2830

29-
public class LdapConfiguration {
31+
public class LdapConfiguration implements Configurable{
3032
private final static String factory = "com.sun.jndi.ldap.LdapCtxFactory";
3133

34+
private static final ConfigKey<Long> ldapReadTimeout = new ConfigKey<Long>(Long.class, "ldap.read.timeout", "Advanced", "1000",
35+
"LDAP connection Timeout in milli sec", true, ConfigKey.Scope.Global, 1l);
36+
3237
private final static int scope = SearchControls.SUBTREE_SCOPE;
3338

3439
@Inject
@@ -148,4 +153,18 @@ public String getGroupUniqueMemeberAttribute() {
148153
public String getCommonNameAttribute() {
149154
return "cn";
150155
}
156+
157+
public Long getReadTimeout() {
158+
return ldapReadTimeout.value();
159+
}
160+
161+
@Override
162+
public String getConfigComponentName() {
163+
return LdapConfiguration.class.getSimpleName();
164+
}
165+
166+
@Override
167+
public ConfigKey<?>[] getConfigKeys() {
168+
return new ConfigKey<?>[] {ldapReadTimeout};
169+
}
151170
}

plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapContextFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ private Hashtable<String, String> getEnvironment(final String principal, final S
8282

8383
environment.put(Context.INITIAL_CONTEXT_FACTORY, factory);
8484
environment.put(Context.PROVIDER_URL, url);
85-
environment.put("com.sun.jndi.ldap.read.timeout", "500");
85+
environment.put("com.sun.jndi.ldap.read.timeout", _ldapConfiguration.getReadTimeout().toString());
8686
environment.put("com.sun.jndi.ldap.connect.pool", "true");
8787

8888
enableSSL(environment);

0 commit comments

Comments
 (0)