keycloak-memoizeit

KEYCLOAK-419 Upgrade picketlink dependency and enable ldap

4/29/2014 6:10:10 AM

Details

diff --git a/picketlink/keycloak-picketlink-realm/src/main/java/org/keycloak/picketlink/realm/PartitionManagerRegistry.java b/picketlink/keycloak-picketlink-realm/src/main/java/org/keycloak/picketlink/realm/PartitionManagerRegistry.java
index b6a5b7b..261fdb3 100644
--- a/picketlink/keycloak-picketlink-realm/src/main/java/org/keycloak/picketlink/realm/PartitionManagerRegistry.java
+++ b/picketlink/keycloak-picketlink-realm/src/main/java/org/keycloak/picketlink/realm/PartitionManagerRegistry.java
@@ -1,6 +1,7 @@
 package org.keycloak.picketlink.realm;
 
 import java.util.Map;
+import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.jboss.logging.Logger;
@@ -54,11 +55,23 @@ public class PartitionManagerRegistry {
     protected PartitionManager createPartitionManager(Map<String,String> ldapConfig) {
         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
         builder
             .named("SIMPLE_LDAP_STORE_CONFIG")
                 .stores()
                     .ldap()
+                        .connectionProperties(connectionProps)
                         .addCredentialHandler(LDAPAgentIgnoreCredentialHandler.class)
                         .baseDN(ldapConfig.get(LdapConstants.BASE_DN))
                         .bindDN(ldapConfig.get(LdapConstants.BIND_DN))
@@ -77,6 +90,12 @@ public class PartitionManagerRegistry {
         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 PartitionManagerContext(Map<String,String> config, PartitionManager manager) {

pom.xml 2(+1 -1)

diff --git a/pom.xml b/pom.xml
index e62a6d4..94e25e2 100755
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
         <resteasy.version.eap.6.3>2.3.7.Final</resteasy.version.eap.6.3>
         <resteasy.version.latest>3.0.8.Final</resteasy.version.latest>
         <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>
         <mongo.driver.version>2.11.3</mongo.driver.version>
         <jboss.logging.version>3.1.1.GA</jboss.logging.version>