KEYCLOAK-419 Upgrade picketlink dependency and enable ldap connection pooling

This commit is contained in:
mposolda 2014-04-29 11:10:10 +02:00
parent b6386630fb
commit bb11ad2ec1
2 changed files with 20 additions and 1 deletions

View file

@ -1,6 +1,7 @@
package org.keycloak.picketlink.realm; package org.keycloak.picketlink.realm;
import java.util.Map; import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import org.jboss.logging.Logger; import org.jboss.logging.Logger;
@ -54,11 +55,23 @@ public class PartitionManagerRegistry {
protected PartitionManager createPartitionManager(Map<String,String> ldapConfig) { protected PartitionManager createPartitionManager(Map<String,String> ldapConfig) {
IdentityConfigurationBuilder builder = new IdentityConfigurationBuilder(); IdentityConfigurationBuilder builder = new IdentityConfigurationBuilder();
Properties connectionProps = new Properties();
connectionProps.put("com.sun.jndi.ldap.connect.pool", "true");
checkSystemProperty("com.sun.jndi.ldap.connect.pool.authentication", "none simple");
checkSystemProperty("com.sun.jndi.ldap.connect.pool.initsize", "1");
checkSystemProperty("com.sun.jndi.ldap.connect.pool.maxsize", "10");
checkSystemProperty("com.sun.jndi.ldap.connect.pool.prefsize", "5");
checkSystemProperty("com.sun.jndi.ldap.connect.pool.timeout", "300000");
checkSystemProperty("com.sun.jndi.ldap.connect.pool.protocol", "plain");
checkSystemProperty("com.sun.jndi.ldap.connect.pool.debug", "off");
// Use same mapping for User and Agent for now // Use same mapping for User and Agent for now
builder builder
.named("SIMPLE_LDAP_STORE_CONFIG") .named("SIMPLE_LDAP_STORE_CONFIG")
.stores() .stores()
.ldap() .ldap()
.connectionProperties(connectionProps)
.addCredentialHandler(LDAPAgentIgnoreCredentialHandler.class) .addCredentialHandler(LDAPAgentIgnoreCredentialHandler.class)
.baseDN(ldapConfig.get(LdapConstants.BASE_DN)) .baseDN(ldapConfig.get(LdapConstants.BASE_DN))
.bindDN(ldapConfig.get(LdapConstants.BIND_DN)) .bindDN(ldapConfig.get(LdapConstants.BIND_DN))
@ -77,6 +90,12 @@ public class PartitionManagerRegistry {
return new DefaultPartitionManager(builder.buildAll()); return new DefaultPartitionManager(builder.buildAll());
} }
private void checkSystemProperty(String name, String defaultValue) {
if (System.getProperty(name) == null) {
System.setProperty(name, defaultValue);
}
}
private class PartitionManagerContext { private class PartitionManagerContext {
private PartitionManagerContext(Map<String,String> config, PartitionManager manager) { private PartitionManagerContext(Map<String,String> config, PartitionManager manager) {

View file

@ -17,7 +17,7 @@
<resteasy.version.eap.6.3>2.3.7.Final</resteasy.version.eap.6.3> <resteasy.version.eap.6.3>2.3.7.Final</resteasy.version.eap.6.3>
<resteasy.version.latest>3.0.8.Final</resteasy.version.latest> <resteasy.version.latest>3.0.8.Final</resteasy.version.latest>
<undertow.version>1.0.0.Final</undertow.version> <undertow.version>1.0.0.Final</undertow.version>
<picketlink.version>2.6.0.CR1</picketlink.version> <picketlink.version>2.6.0.CR2</picketlink.version>
<picketbox.ldap.version>1.0.2.Final</picketbox.ldap.version> <picketbox.ldap.version>1.0.2.Final</picketbox.ldap.version>
<mongo.driver.version>2.11.3</mongo.driver.version> <mongo.driver.version>2.11.3</mongo.driver.version>
<jboss.logging.version>3.1.1.GA</jboss.logging.version> <jboss.logging.version>3.1.1.GA</jboss.logging.version>