В Spring Security я не отменяю сессию немедленно, но делаю это в LogoutSuccessHandler (необходимо сохранить некоторую информацию для опроса после выхода из системы)
Это подводит меня к сути: как я могу лишить законной силы сеанс, если выход из системы происходит неправильно?
HttpSecurity:
http.authorizeRequests()
...
.logout()
.logoutUrl("/logout")
.logoutSuccessHandler(myLogoutSuccessHandler())
.invalidateHttpSession(false) // session invalidated by logoutSuccessHandler.
И myLogutSuccessHandler ():
public class MyLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler {
@Override
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
throws IOException, ServletException {
....
// Invalidation of an old session
HttpSession session = request.getSession(false);
if (session != null) {
logger.debug("Invalidating session: " + session.getId());
session.invalidate();
}
...
super.onLogoutSuccess(request, response, authentication);
}
}
Это подводит меня к сути: как мне сделать недействительным сеанс, если выход из системы идет не так?
Спасибо