Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails springSecurityService.currentUser上的空指针_Grails_Spring Security_Grails 3.0 - Fatal编程技术网

Grails springSecurityService.currentUser上的空指针

Grails springSecurityService.currentUser上的空指针,grails,spring-security,grails-3.0,Grails,Spring Security,Grails 3.0,使用SpringSecurity插件3.0.0(SpringSecurity核心:3.0.0.M1)和Grails3.0.6,我得到了一个NullPointerException,试图根据最新文档获取springSecurityService对象的一些属性 springSecurityService已成功实例化,但它没有以下属性: springSecurityService.currentUser springSecurityService.getCurrentUser() springSecu

使用SpringSecurity插件3.0.0(
SpringSecurity核心:3.0.0.M1
)和Grails3.0.6,我得到了一个
NullPointerException
,试图根据最新文档获取
springSecurityService
对象的一些属性

springSecurityService
已成功实例化,但它没有以下属性:

springSecurityService.currentUser
springSecurityService.getCurrentUser()
springSecurityService.loadCurrentUser()
但以下是好的

springSecurityService.isLoggedIn()
springSecurityService.authentication 
springSecurityService.getAuthentication()
我的控制器代码:

class TestController {

   def springSecurityService

   def index() {

        CurrentUser currentUser = springSecurityService.currentUser

        render "hallo"
    }
}
这里怎么了


更新:我使用了错误的UserDeatailsService,当我重写它时,问题已经解决了。

这很奇怪-这些方法肯定在源代码中。如果在控制器操作中添加
println springSecurityService.getClass().name
,会打印什么?结果是“grails.plugin.springsecurity.springSecurityService”@AlexShwarc我也遇到了同样的错误,花了整整一天的时间。我不知道您的环境是什么,但如果我从Intellij给Application.groovy打电话,我的环境就会出现。如果我使用Gradle:run任务,它不会出现。您可以看到我的示例应用程序,它在一个服务中使用springSecurityService.getCurrentUser()方法,该服务被注入到我的域类中,只要我使用Gradle:run或grails run应用程序,我就不会有任何问题。Application.groovy版本有NPE。我解决了一个问题,这是自定义UserDetailsService的错误实现。似乎
springSecurityService.currentUser
希望用户对象由gorm提供。如果您不使用gorm,那么通常会使用此命令获得空指针。