/ / ¿Cómo forzar un cierre de sesión programático usando Grails / Spring Security Core? - griales, muelles

¿Cómo forzar un cierre de sesión programático utilizando Grails / Spring Security Core? - griales, seguridad primaveral

¿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 № 1

Este 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);