2 Stimmen

Grails Spring Security Plugin - Problem beim Entkommen des Benutzernamens

Ich arbeite derzeit mit Grails und dem Spring Security Plugin und versuche, einen Workflow zum Ablauf von Passwörtern zu implementieren. Ich habe das Plugin wie erwartet konfiguriert:

grails.plugins.springsecurity.failureHandler.exceptionMappings = [
    'org.springframework.security.authentication.CredentialsExpiredException': '/login/passwordExpired'
]

und in meiner Aktion passwordExpired, wenn ich aufrufe:

def username = session['SPRING_SECURITY_LAST_USERNAME']

dann werden die HTML-Sonderzeichen im Benutzernamen wie folgt umgangen

my_user => my_user
my-user => my-user

Ist es möglich, dieses Entweichen auszuschalten?

Ritesh erwähnt hier spring_security_last_username dass der SPRING_SECURITY_LAST_USERNAME veraltet ist, was kann ich also noch verwenden?

Für jede Hilfe, danke im Voraus!

5voto

Burt Beckwith Punkte 74817

Der String 'SPRING_SECURITY_LAST_USERNAME' nicht veraltet ist - die alte Konstante mit diesem Wert ist es und wurde mit einem neuen Namen, aber demselben Wert verschoben. Ihr Code wird also weiterhin gültig sein.

Anstatt die Dinge zu ändern, um nicht zu entkommen, können Sie die Flucht leicht rückgängig machen:

import org.apache.commons.lang.StringEscapeUtils
...
String username = StringEscapeUtils.unescapeHtml(session['SPRING_SECURITY_LAST_USERNAME'])

1voto

Marc Palmer Punkte 497

Sie brauchen kein Werkzeug zu benutzen. Verwenden Sie Grails HTML Codec:

username = session['SPRING_SECURITY_LAST_USERNAME']?.decodeHTML()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X