Testen Sie die LDAP-Verbindung mit Spring LDAP-Authentifizierung:
dh mit dem authenticate() methode:
ldapTemplate.authenticate(query, password);
oder noch besser, mit getContext() Methode:
ldapTemplate.getContextSource().getContext(userDn, userPassword));
Fang die org.springframework.ldap.CommunicationException zu überprüfen, ob die Verbindung erfolgreich ist.
Der vollständige Code-Schnipsel soll wie folgt aussehen:
// Create the spring LdapTemplates; i.e. connections to the source and target ldaps:
try {
// Note: I'm using the direct LdapTemplate initialization rather than with bean creation (Spring ldap supports both)
log.info("Connecting to LDAP " + sourceHost + ":" + sourcePort + "...");
LdapContextSource sourceLdapCtx = new LdapContextSource();
sourceLdapCtx.setUrl("ldap://" + sourceHost + ":" + sourcePort + "/");
sourceLdapCtx.setUserDn(sourceBindAccount);
sourceLdapCtx.setPassword(sourcePassword);
sourceLdapCtx.setDirObjectFactory(DefaultDirObjectFactory.class);
sourceLdapCtx.afterPropertiesSet();
sourceLdapTemplate = new LdapTemplate(sourceLdapCtx);
// Authenticate:
sourceLdapTemplate.getContextSource().getContext(sourceBindAccount, sourcePassword);
} catch (Exception e) {
throw new Exception("Failed to connect to LDAP - " + e.getMessage(), e);
}
Hinweis: Ich bin mit Feder LDAP 2.3.x Version:
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
</dependency>
Thanks a lot Marcel. Ich werde dein Beispiel versuchen. – user1366786
Ihr Beispiel hat gut funktioniert. Und ich habe es auch mit der DefaultSpringSecurityContextSource von Spring versucht. – user1366786
Der Artikel, auf den oben auf der jetzt nicht mehr existierenden java.net-Site (LdapTemplate: LDAP-Programmierung in Java Made Simple) verwiesen wurde, wurde auf folgende URL verschoben: https://community.oracle.com/docs/DOC-983546 –