我现在正在运行Grails 3.1.15和org.grails.plugins:spring-security-core:3.1.1
。错误处理时的空验证403
当我返回一个状态代码403
时,我的ErrorController
应该生成一个合适的错误页面(它被映射到UrlMappings
)。它需要一个springSecurityService.currentUser
来生成该错误页面。
原来,我得到NPE
在这个过程中,因为springSecurityService.currentUser
是空的以及认证对象。
这在Grails2中工作正常,spring-security-plugin
的v2
工作正常。
我遇到了这个问题:Spring SecurityContext returning null authentication on error pages和建议有ExceptionTranslationFilter
必须到位。 在Grails2中确实存在,但在Grails3中,它被替换/扩展为UpdateRequestContextHolderExceptionTranslationFilter
- 它仍然在过滤器链中。
我能做些什么来防止这种情况发生(获得一个空认证)时,错误处理403
备注:
- 整个情况在Tomcat中部署时,只发生在生产ENV - 不在开发模式下可重现