2017-03-15 70 views
0

我现在正在运行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-pluginv2工作正常。

我遇到了这个问题:Spring SecurityContext returning null authentication on error pages和建议有ExceptionTranslationFilter必须到位。 在Grails2中确实存在,但在Grails3中,它被替换/扩展为UpdateRequestContextHolderExceptionTranslationFilter - 它仍然在过滤器链中。

我能做些什么来防止这种情况发生(获得一个空认证)时,错误处理403

备注:

  • 整个情况在Tomcat中部署时,只发生在生产ENV - 不在开发模式下可重现

回答

0

您是否尝试过在application.yml中设置此项?这对Grails 2和Grails 3都有帮助。

grails: 
    plugin: 
     springsecurity: 
      adh: 
       errorPage: null