¿Cómo puedo forzar un cierre de sesión programático para un usuario conectado con Spring Security Core? No quiero redirigir a la página de cierre de sesión, etc. pero necesito hacerlo en un servicio.
Respuestas
5 para la respuesta № 1Este es otro enfoque. Recibo los manejadores de cierre de sesión de bean "logoutHandlers" y cierro sesión en cada uno de los siguientes:
def logoutHandlers
def logout(request,response) {
Authentication auth = SecurityContextHolder.context.authentication
if (auth) {
logoutHandlers.each { handler->
handler.logout(request,response,auth)
}
}
}
0 para la respuesta № 2
Utilicé el siguiente código para lograr mi objetivo:
Authentication auth = SecurityContextHolder.context.authentication
new SecurityContextLogoutHandler().logout(request, response, auth);
new PersistentTokenBasedRememberMeServices().logout(request, response, auth);