没有这样的属性:id类:org.springframework.security.core.userdetails.Us



我已经将我的Spring安全插件从 Spring -security-core:1.2.7.2升级到 Spring -security-core:2.0-RC2,我的应用程序使用Grails 2.3.7

升级后,我相应地更改了导入,因此所有编译错误都得到了修复,但在运行我的应用程序后,当我试图访问它http://localhost:8080/login/auth时,我得到了异常:由:groovy.lang.MissingPropertyException: No such property: id for class: org.springframework.security.core.userdetails.User

作为身份验证。GSP是使用自定义标签库和代码一样的if(springSecurityService.principal!="anonymousUser")user = SecUser.get(springSecurityService.principal.id)

这里说的是没有这样的属性:id为类:org.springframework.security.core.userdetails.User

直到我可以看到你想要的是检索当前登录的用户id,有一个特殊的助手,只获得用户id "loadCurrentUser()"

我将grails spring安全核心插件中的这段代码粘贴到loadCurrentUser()节

class SomeController {
  def springSecurityService
  def someAction() { 
    def user = springSecurityService.isLoggedIn() ? springSecurityService.loadCurrentUser() : null 
    if (user) {
      CreditCard card = CreditCard.findByIdAndUser(params.id as Long, user)
      … 
     }
    …
  }
}

希望对大家有帮助

相关内容

最新更新