diff --git a/docs/documentation/server_admin/topics/user-federation/ldap.adoc b/docs/documentation/server_admin/topics/user-federation/ldap.adoc index 7467d095bdf..ab0ddb91b6c 100644 --- a/docs/documentation/server_admin/topics/user-federation/ldap.adoc +++ b/docs/documentation/server_admin/topics/user-federation/ldap.adoc @@ -175,6 +175,8 @@ The LDAP connection pool configuration is configured using the following system | `com.sun.jndi.ldap.connect.pool.debug` | A string that indicates the level of debug output to produce. Valid values are "fine" (trace connection creation and removal) and "all" (all debugging information) |=== +By default, connection pooling is enabled for both `plain` and `ssl` protocols. + For more details, see the link:https://docs.oracle.com/javase/jndi/tutorial/ldap/connect/config.html[Java LDAP Connection Pooling Configuration] documentation. To set any of these properties, you can set the `JAVA_OPTS_APPEND` environment variable: diff --git a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakMain.java b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakMain.java index 76d301fd052..95774395f22 100644 --- a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakMain.java +++ b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakMain.java @@ -52,12 +52,17 @@ import io.quarkus.runtime.annotations.QuarkusMain; public class KeycloakMain implements QuarkusApplication { private static final String INFINISPAN_VIRTUAL_THREADS_PROP = "org.infinispan.threads.virtual"; + private static final String LDAP_CONNECTION_POOL_PROTOCOL = "com.sun.jndi.ldap.connect.pool.protocol"; static { // enable Infinispan and JGroups virtual threads by default if (System.getProperty(INFINISPAN_VIRTUAL_THREADS_PROP) == null) { System.setProperty(INFINISPAN_VIRTUAL_THREADS_PROP, "true"); } + // set connection pooling for plain and tls protocols by default + if (System.getProperty(LDAP_CONNECTION_POOL_PROTOCOL) == null) { + System.setProperty(LDAP_CONNECTION_POOL_PROTOCOL, "plain ssl"); + } } public static void main(String[] args) {