grails - 如何以编程方式注销 Grails 的 acegi 插件?

标签 grails spring-security

使用此登录代码是否有类似的注销逻辑:

// login account
def autht = new AuthToken(username, password)
def authtoken = daoAuthenticationProvider.authenticate(autht)
SecurityContextHolder.context.authentication = authtoken

我检查了 LogoutController,这是注销的唯一逻辑:
redirect(uri: '/j_spring_security_logout')

任何的想法?谢谢

最佳答案

您需要使 session 无效:

session.invalidate()

并删除身份验证:
SecurityContextHolder.clearContext()

如果支持,您还需要删除他们的记住我的 cookie。为 rememberMeServices ("def rememberMeServices") 添加依赖注入(inject)并调用
rememberMeServices.logout request, response, null

关于grails - 如何以编程方式注销 Grails 的 acegi 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2779923/

相关文章:

testing - Grails 功能测试依赖注入(inject)

grails - Grails-如何通过gsp中的<g:set>获取特定输入的值

redirect - Backbone.JS "sync"方法中处理 HTTP 302 错误和重定向

java - 根据用户角色和权限显示不同的网页和元素

spring-security - 在 Spring Security 表单登录页面中获取原始请求 url

grails - 将 Groovy 应用程序连接到 SQL Server Express

grails - grails可搜索的索引null值

spring - 自定义Spring Security过滤器链返回404

spring - Keycloak角色映射

spring-security - 找不到名称为 'tokenStore' 的 bean 的类 [org.springframework.security.oauth2.provider.token.InMemoryTokenStore]