Frage

Ich bin mit Spring LDAP (1.3.1) zu reden ADAM und Active Directory.

Wenn ich versuche, zu beglaubigen jemand mit ldapTemplate.authenticate () ich wieder Fehler über Fehler Rückruf erhalten, aber es gibt eine sehr generische Ausnahme AuthenticationException und ich kann nicht extrahieren, was genau ist das Problem:

  • Konto deaktiviert
  • Passwort abgelaufen
  • muss Kennwort bei der nächsten Anmeldung ändern
  • Konto abgelaufen
  • etc

Alles, was ich zurück bekommen, ist eine detailMessage was ich davon ausgehen, ist das, was AD zurückschickt. So etwas wie:

org.springframework.ldap.AuthenticationException: [LDAP: Fehlercode 49 - 8009030C: LdapErr: DSID-0C0903A9, Kommentar: AcceptSecurityContext Fehler, Daten 773, v1db0

kann ich Daten 773 sehen, die der Benutzer bedeuten muss das Kennwort bei der nächsten Anmeldung ändern. Ich möchte nicht, diese manuell analysieren. Gibt es irgendwelche „Adapter“ Ich bin mir nicht bewusst?

Hat jemand schon einmal dieses Problem hatte?

Vielen Dank!

War es hilfreich?

Lösung

Dieser Link listet auf, wie LDAP-Fehlercodes Karte zu JNDI Ausnahmen. Mit Blick auf Frühling ldap Code scheint es, dass Feder ordnet jede JNDI Ausnahme seiner benutzerdefinierten LDAP-Ausnahme (LdapUtils.convertLdapException())

Nun scheint 773 zu Active Directory specfic. Daher muss diese explizit vom Benutzer bearbeitet werden, falls erforderlich. Dieser Link Listen eine Reihe von Active Directory-Fehler. Frühling ldap würde diesen Text in seinen Fehlerdetails zur Verfügung stellen, so dass der Benutzer sie als geeignet verwenden.

Andere Tipps

Wenn Ihr Code landet in PasswordPolicyAwareContextSource.getContext oder in ähnlicher Feder Code, nicht Frühling behandelt es nicht sehr gut (Bug).
Wenn das Konto abgelaufen ist eine Ausnahme ausgelöst wird. die obige Klasse fängt diese Ausnahme und dann, und dies ist der Schlüssel, ruft
PasswordPolicyResponseControl ctrl = PasswordPolicyControlExtractor.extractControl (CTX);
Frühling ruft dann ctrl.isLocked (), aber nicht für eine der anderen Bedingungen zu überprüfen. Sie sollten Spring Code überschreiben, und Sie können ctrl.isExpired überprüfen (), ctrl.isChangeAfterReset () und ein paar andere Informationen Getter stehen dort zur Verfügung zu diesem Zeitpunkt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top