【问题标题】:springSecurityService.principal.id giving firstname instead of useridspringSecurityService.principal.id 给出名字而不是用户 ID
【发布时间】:2012-03-10 12:07:38
【问题描述】:

我在我的应用程序中使用 springSecurityCore 插件,用户登录 appStartupController 后,我喜欢

def index = {
   if (springSecurityService.isLoggedIn()) {
      session.loginId=springSecurityService.principal.id
      def userRole=UserRole.findAllByUserAndRole(User.get(session.loginId), Role.findByAuthority('ROLE_USERSDASH'))
      if(userRole){
         redirect(controller:'dashboard',action:'getRiskUserDashboard')
      }
   }
}

当我在 header.gsp 中读取 session.loginId 时,我看到 User 表中的名字被打印出来。 我需要将 User 表中的 userId 字段映射到 session.loginId。 该怎么做?

【问题讨论】:

  • 不是答案,但您可以通过 SpringSecurityUtils.ifAllGranted('ROLE_USERSDASH') 更简单地检查角色

标签: grails spring-security


【解决方案1】:

您可以通过调用以下方法获取当前用户:

def user = springSecurityService.getCurrentUser()

然后将该用户传递给 UserRole 查找方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2020-10-12
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    相关资源
    最近更新 更多