====== LDAP ohne Connection Pool ======
Gibt es Probleme bei der Verbindung mit dem LDAP-Server unter Verwendung eines Connection Pools, so kann man diesen mit folgenden Schritten deaktivieren.
Der IdP benutzt standardmäßig eine sogenannte [[http://www.ldaptive.org/docs/guide/connections.html|PooledConnectionFactory]]. Das heißt, dass eine definierte Anzahl an Verbindungen zum LDAP-Dienst aufrecht erhalten wird und Authentifizierungen sofort stattfinden können (Performance-Verbesserung).
Wenn diese Verbindung beendet wird, so registriert Shibboleth dies und baut selbstständig eine neue auf. Dies kann man über ein paar Parameter in ''conf/ldap.properties'' ([[https://wiki.shibboleth.net/confluence/display/IDP4/LDAPAuthnConfiguration#55804291414bc06da6fe4d90ba837912b84b54aa|IdP 4.x]]) steuern. In der Konfigurationsdatei sehen Sie die (auskommentierten) Standardeinstellungen und können sie bei Bedarf verändern (Beispiel für IdP 4.x).
# LDAP pool configuration, used for both authn and DN resolution
#idp.pool.LDAP.minSize = 3
#idp.pool.LDAP.maxSize = 10
#idp.pool.LDAP.validateOnCheckout = false
#idp.pool.LDAP.validatePeriodically = true
#idp.pool.LDAP.validatePeriod = PT5M
#idp.pool.LDAP.validateDN =
#idp.pool.LDAP.validateFilter = (objectClass=*)
#idp.pool.LDAP.prunePeriod = PT5M
#idp.pool.LDAP.idleTime = PT10M
#idp.pool.LDAP.blockWaitTime = PT3S
Es kann dazu kommen, dass die Verbindung zum LDAP-Server zwar erhalten bleibt, jedoch in einer definierten Zeit keine Antwort zurück kommt. Unter Umständen können sich Nutzer*innen dann nicht mehr am IdP einloggen.
Ein passender Eintrag in den Logfiles sieht wie folgt aus:
WARN [net.shibboleth.idp.authn.impl.ValidateUsernamePasswordAgainstLDAP:175] - Profile Action ValidateUsernamePasswordAgainstLDAP: Login by centreon produced exception
org.ldaptive.LdapException: javax.naming.NamingException: LDAP response read timed out, timeout used:3000ms.
at org.ldaptive.provider.ProviderUtils.throwOperationException(ProviderUtils.java:77)
Caused by: javax.naming.NamingException: LDAP response read timed out, timeout used:3000ms.
at com.sun.jndi.ldap.Connection.readReply(Connection.java:502)
Um den Connection Pool im **IdP 4.x** abzuschalten, können Sie die Einstellung ''idp.authn.LDAP.disablePooling'' in ''ldap.properties'' auf den Wert ''true'' setzen.
{{tag>idp4 ldap}}