/ / Come forzare una disconnessione programmatica usando Grails / Spring Security Core? - graal, sicurezza di primavera

Come forzare un logout programmatico usando Grails / Spring Security Core? - graal, sicurezza di primavera

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

Questo è 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);