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.
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:
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.
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:
anstelle von logout-success-url
.
A LogoutSuccessHandler
kann so einfach aussehen wie:
Legen Sie Ihre Abmelde-URL in Ihrem Sicherheitskontext als defaultTargetUrl
fest, wenn Sie die Bean für die benutzerdefinierte LogoutSuccessHandler
:
Tags und Links java spring spring-security