Für Spring Sicherheitseinstellungen im Spring Boot. Der LDAP-Authentifizierungsanbieter ist standardmäßig für die Verwendung der BindAuthenticator-Klasse konfiguriert.Wie wird BindAuthenticator übergangen? HandleBindException für Spring LDAP-Authentifizierungseinstellung im Spring Boot
Diese Klasse enthält Methode
/**
* Allows subclasses to inspect the exception thrown by an attempt to bind with a
* particular DN. The default implementation just reports the failure to the debug
* logger.
*/
protected void handleBindException(String userDn, String username, Throwable cause) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to bind as " + userDn + ": " + cause);
}
}
dieser Methode ist die Authentifizierung bezogenen Ausnahmen wie ungültige Anmeldeinformationen zu handhaben.
Ich möchte diese Methode übersteuern, damit ich dieses Problem behandeln und richtige Fehlermeldung auf der Grundlage von Fehlercodes zurückgeben kann, die von LDAP zurückgegeben werden. wie ein ungültiges Passwort oder der Account ist gesperrt.
Die aktuelle LDAP-Implementierung gibt immer "Bad Credentials" zurück, die nicht das richtige Bild dafür liefern, warum meine Anmeldeinformationen ungültig sind. Ich will die Fälle
- abzudecken, in denen das Konto gesperrt wird
- Passwort abgelaufen ist, so kann ich umleiten Passwort aufgrund Anzahl der ungültigen Kennwort
- Konto gesperrt Änderungen wiederholt
Bitte helfen
Sollte es ... Wollen Sie das wirklich zu Ihrem Endbenutzer zurückgeben? Aus Sicherheitsgründen möchten Sie diese Informationen nicht veröffentlichen. Wenn ein Konto gesperrt ist, weiß ein Hacker, dass er einen gültigen Benutzernamen hat. Das gleiche gilt, wenn Sie ihm sagen, dass das Passwort falsch ist oder wenn kein Benutzername existiert. –
@Denium Ich baue dies für die interne App nur der Mitarbeiter kann ins Intranet zugreifen. Das ist also die Erwartung von meinem Product Owner :) – Ahsan
Aus Sicherheitsgründen spielt das keine Rolle. Wer sagt, alle Nutzer sind gutwillig, was ist mit verärgerten Mitarbeitern.Ich kann mir vorstellen, dass Sie diese Informationen in Ihren Protokollen möchten, aber Sie möchten so allgemein wie möglich für die Außenwelt sein. –