Come posso forzare un logout programmatico per un utente che ha effettuato l'accesso utilizzando Spring Security Core? Non voglio reindirizzare alla pagina di disconnessione, ecc .. ma è necessario farlo in un servizio.
risposte:
5 per risposta № 1Questo è un altro approccio. Ottengo i gestori di logout dal bean "logoutHandlers" e faccio il logout in ognuno di questi:
def logoutHandlers
def logout(request,response) {
Authentication auth = SecurityContextHolder.context.authentication
if (auth) {
logoutHandlers.each { handler->
handler.logout(request,response,auth)
}
}
}
0 per risposta № 2
Ho usato il seguente codice per raggiungere il mio obiettivo:
Authentication auth = SecurityContextHolder.context.authentication
new SecurityContextLogoutHandler().logout(request, response, auth);
new PersistentTokenBasedRememberMeServices().logout(request, response, auth);