SpringSecurity和Grails如何实现这种情况?

SpringSecurity和Grails如何实现这种情况?,grails,spring-security,Grails,Spring Security,给定一个带有“IS_AUTHENTICATED_FULL”注释的控制器方法和注入的springSecurityService,我很奇怪为什么偶尔会看到由于空用户实例而引发异常 例如,我的控制器的动作就是这样 @Secured(['IS_AUTHENTICATED_FULLY']) def ammendSomething = { def User user = springSecurityService.currentUser println user.fieldTest

给定一个带有“IS_AUTHENTICATED_FULL”注释的控制器方法和注入的springSecurityService,我很奇怪为什么偶尔会看到由于空用户实例而引发异常

例如,我的控制器的动作就是这样

@Secured(['IS_AUTHENTICATED_FULLY'])
  def ammendSomething = {

    def User user = springSecurityService.currentUser

    println user.fieldTest
    render "OK"
  }
大量修改以显示重要位、注释、检索用户和访问字段的调用

上述结果导致NullPointerException:无法获取null对象的属性“fieldTest”

这只发生在生产环境中,我无法复制开发过程中的问题,因为我在未登录时对此进行的任何调用都正确地重定向到“auth”登录过程

所以我很困惑,当springSecurityService中没有currentUser时,如何执行pringln user.fieldTest

任何想法都值得赞赏


谢谢,

什么是
def用户
?我很惊讶,即使是编译。删除
def
。它是groovy代码,只是带有显式类型声明