2016-05-12 9 views
1

Ich habe eine Anwendung, die SpringSecurity verwendet. Mein Problem tritt auf, wenn ich versuche mich einzuloggen, es scheitert und ich versuche es erneut. Was passiert, ist, dass die Sitzungs-ID immer noch dieselbe ist, und das schafft Probleme. Ich habe zu laufen versucht:SpringSecurity - Notwendigkeit, eine neue sessionId bei jedem versuchten Login zu erstellen

request.getSession(false).invalidate() 
final HttpSession session = request.getSession(true) 

Wenn ich das tue ich serverError bekommen, wenn ich versuche, um sich anzumelden, die nicht überall angemeldet ist (ich vermute SpringSecurity schuld ist ...). Gibt es trotzdem eine neue Sitzung bei jeder Anmeldeanforderung, wenn Sie SpringSecurity verwenden?

Antwort

1

Sie werden wahrscheinlich Nullpointerexceptions bekommen mit

request.getSession(false).invalidate(); 

weil getSession null zurück, wenn es keine Sitzung ist. Dies wird wahrscheinlich funktionieren, wenn Sie vor dem Ungültigmachen eine Nullprüfung durchführen.

HttpSession session = request.getSession(false); 
if (session != null) { 
    session.invalidate(); 
}