【发布时间】:2016-11-03 04:43:26
【问题描述】:
从容器管理的身份验证迁移到 Grails 3.1.9 应用程序中的 Spring Security 插件。在容器管理的世界中,我们的 Grails 拦截器在对安全资源进行身份验证之后执行。但是,使用 Spring Security,拦截器(使用 before() 逻辑)按以下顺序执行:
- 调用安全资源
- 拦截器栈拦截请求,返回true
- 重定向到表单登录页面
- 身份验证成功
- 重定向到请求的资源
我们有拦截器,应该只为经过身份验证的用户触发。有没有办法让拦截器在第 4 步和第 5 步之间执行而不是这个流程?或者这是我们的拦截器逻辑需要移入 Spring Security 过滤器的地方?
【问题讨论】:
-
我和这个问题有同样的要求,但我无法理解答案。我编写了从 intellij 或 grails run-app 运行时运行良好的拦截器,但是当我将它作为 war 文件部署到 tomcat 中时,所有的地狱都失败了。我的令牌已通过身份验证,但我得到 springSecurityService.principal = null。详细信息在这个问题中。
标签: grails spring-security grails-plugin grails-3.1