【发布时间】:2017-08-06 04:08:36
【问题描述】:
我现在使用org.grails.plugins:spring-security-core:3.1.1 运行 Grails 3.1.15。
当我返回状态代码403 我的ErrorController 应该生成一个适当的错误页面(这映射到UrlMappings)。它需要springSecurityService.currentUser 来生成该错误页面。
原来我在那个过程中得到了NPE,因为springSecurityService.currentUser 和身份验证对象一样为空。
这在 Grails2 和 v2 的 spring-security-plugin 中运行良好。
我遇到过这个问题:Spring SecurityContext returning null authentication on error pages,并且建议ExceptionTranslationFilter 必须到位。
在 Grails2 中它确实存在,但在 Grails3 中它被替换/扩展为 UpdateRequestContextHolderExceptionTranslationFilter - 它仍在过滤器链中。
在处理403 错误时,我能做些什么来防止这种情况发生(获得空身份验证)
备注:
- 当部署在 Tomcat 中时,整个情况仅发生在生产环境中 - 在开发模式下无法重现
【问题讨论】:
标签: grails spring-security grails-spring-security