用户登录后,我会检查他们的角色。如果他们没有角色,我想将其注销。这就是我现在正在做的事情:
if (SpringSecurityUtils.ifAllGranted('ROLE_ADMIN')) {
redirect(uri: '/book/edit')
}
else if (SpringSecurityUtils.ifAllGranted('ROLE_USER')) {
redirect(uri: '/book/list')
}
else {
redirect(uri: '/login/auth')
}
这不起作用,因为有一个递归重定向到/login/auth
。如何正确执行此操作(注销然后重定向到/login/auth
)?
答案 0 :(得分:9)
顺便说一下,要注销当前登录的用户,您可以进行以下调用:
SecurityContextHolder.clearContext()
答案 1 :(得分:7)
class AnyController {
def logoutHandlers
def method = {
...
logoutHandlers.each { handler ->
handler.logout(request, response, springSecurityService.authentication)
}
}
}