【问题标题】:No such property: id for class: org.springframework.security.core.userdetails.User没有这样的属性:类的 id:org.springframework.security.core.userdetails.User
【发布时间】:2014-07-14 04:20:43
【问题描述】:

我已将我的 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:没有这样的属性:类的id:org.springframework.security.core.userdetails.User

因为 auth.gsp 使用自定义标签库,代码就像 if(springSecurityService.principal!="anonymousUser")user = SecUser.get(springSecurityService.principal.id)

这里是说 No such property: id for class: org.springframework.security.core.userdetails.User

不知道如何解决这个问题...

【问题讨论】:

    标签: grails spring-security grails-plugin


    【解决方案1】:

    直到我看到你想要的是检索当前登录的用户 id,有一个特殊的帮助程序只能获取用户 id “loadCurrentUser()”

    我从grails spring security core plugin in section 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)
          … 
         }
        …
      }
    }
    

    希望对你有用

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 2013-01-16
      • 1970-01-01
      相关资源
      最近更新 更多