2016-05-16 11 views
0

Ich baue eine Feder Boot Security App.Wie benutzerdefinierte Frühling Sicherheit i18n mit Param

und im Web

${session[SPRING_SECURITY_LAST_EXCEPTION].message} 

in message.properties gibt es:

AbstractUserDetailsAuthenticationProvider.badCredentials={0} username and password not correct ! 

Wie kann ich Config die oben param {0}?

+0

Was meinen Sie mit "config die obige param {0}"? Warum sollte "{0}" durch "message.properties" ersetzt werden? – miensol

+0

@miensol Ich füge eine Überwachung von Anmeldeversuchen hinzu. Das ist, wenn Login-Fehler 10 Mal, die benutzerdefinierte IP wird blockiert. '{0}' bedeutet Links-Zeiten des Scheiterns. Also 'badCredentials = {0} Benutzername' dort –

Antwort

1

AbstractUserDetailsAuthenticationProvider.badCredentials wird von Spring (AbstractUserDetailsAuthenticationProvider) verwendet, um eine BadCredentialsException mit dieser Nachricht zu werfen: direkt

throw new BadCredentialsException(messages.getMessage(
       "AbstractUserDetailsAuthenticationProvider.badCredentials", 
       "Bad credentials")); 

Es gibt keine Möglichkeit, einen Parameter zu Ausnahme-Konstruktor zur Verfügung zu stellen. Aber Ihr Ziel - gescheiterte Login-Versuche - ist ziemlich einfach zu erreichen. Sie können Ihre Anzeigelogik einfach so anpassen, dass der Zähler für Anmeldeversuche von der Sitzung neben oder anstelle von BadCredentialsException angezeigt wird. Dies ist wahrscheinlich der beste Ansatz, da Sie Sitzungsdaten (Zähler für fehlgeschlagene Versuche) benötigen, die nicht im AuthenticationProvider verfügbar sind, der die Ausnahme auslöst.

Verwandte Themen