Wichtig
Detail
Wichtig
Detail
Detail
#27073
LDAPAccessService: Verbindungsaufbau unter Verwendung des Hostnamens anstatt der IP Adresse
Für die Erzeugung eines Directory Contextes wird der Endpunkt in der Konfiguration über den Parameter "provider-url" bzw. den Alias %LDAP_PROVIDER_URL% bestimmt. Dieser Wert füllt schließlich die Environment - Variable javax.naming.Context.PROVIDER_URL ("java.naming.provider.url"), zur Auswertung durch das Java Backend (javax.naming.directory.InitialDirContext).
Tatsächlich wird der konfigurierte Wert aber nicht direkt an das Java - Backend weitergegeben. Stattdessen wird diese URL explizit geparsed, der enthaltene Hostname extrahiert und die zugehörigen IP Adressen aufgelöst. Der Hostname in der URL wird durch die (erste) IP Adresse ersetzt und nun wird die Verbindung explizit unter Verwendung der IP Adresse aufgebaut. Im Fehlerfall wird die nächste der gefundenen IP Adressen verwendet.
Problem
Wird LDAP Secure (LDAP-S, Port 636) verwendet, werden Serverzertifikate aus dem Java Keystore verwendet. Diese kennen in der Regel den Hostnamen, aber nicht die IP Adresse des Servers. Wird die Verbindung explizit unter Verwendung der IP Adresse aufgebaut, wird kein passendes Zertifikat gefunden.
Lösung
Die Verbindung soll direkt unter Verwendung der provider-url aufgebaut werden, die in der Konfiguration angegeben wird.
Test
Demo-deploy mit LDAP Verbindung: Nutzerkonten werden korrekt importiert und Login ist möglich.