Die Sicherheitsabmeldung im Frühling verursacht NullPointerException

8

Ich habe seit einiger Zeit versucht, die Sicherheit im Frühling zu verstehen, und ich habe mich mit den meisten Dingen herumgeschlagen, bis auf den Aspekt logout . Wenn ich andere Fragen zu SO durchging, fühlte ich, dass die meisten von ihnen mit Problemen konfrontiert waren, die damit zusammenhingen, dass die Sitzung nicht endete.

Auf der anderen Seite sehe ich mir eine ganz andere Art von Schwierigkeiten an. Meine Sicherheits-XML-Datei ist wie folgt konfiguriert:

%Vor%

In meinem web.xml habe ich das login controller dem Kontextstamm [über die welcome-file Liste] zugeordnet und habe auch das erforderliche springSecurityFilterChain Setup. Jetzt laufen die Login-Vorgänge einwandfrei. Die Ziel-JSP hat eine Abmeldeverbindung als:

%Vor%

Wenn ich jedoch auf den Abmeldelink klicke, bekomme ich eine grässliche NullPointerException . Kann mir jemand Bescheid sagen, wenn ich hier einen eklatanten Fehler mache?

Ausnahmestapel:

%Vor%

Danke, dass du dir die Zeit genommen hast.

    
anirvan 06.09.2011, 20:19
quelle

1 Antwort

12

Die Methode determineTargetUrl in AbstractAuthenticationTargetUrlRequestHandler scheint beim Abrufen der Anforderungsparameter nicht zu funktionieren. Für mich ist es normalerweise in Ordnung, eine defaultTargetUrl und alwaysUseDefaultTargetUrl auf true zu setzen, was bedeutet, dass determineTargetUrl immer die angegebene URL zurückgibt und die URL-Bestimmung verhindert.

Ich würde dies tun, indem ich meine eigene LogoutSuccessHandler Implementierung wie:

registriere %Vor%

anstelle von logout-success-url .

A LogoutSuccessHandler kann so einfach aussehen wie:

%Vor%

Legen Sie Ihre Abmelde-URL in Ihrem Sicherheitskontext als defaultTargetUrl fest, wenn Sie die Bean für die benutzerdefinierte LogoutSuccessHandler :

definieren %Vor%     
jeha 06.09.2011, 22:12
quelle

Tags und Links