Grails springSecurityService.principal.id提供firstname而不是userid

Grails springSecurityService.principal.id提供firstname而不是userid,grails,spring-security,Grails,Spring Security,我正在我的应用程序中使用springSecurityCore插件,在用户登录appStartupController之后,我非常喜欢它 def index = { if (springSecurityService.isLoggedIn()) { session.loginId=springSecurityService.principal.id def userRole=UserRole.findAllByUserAndRole(User.get(session.

我正在我的应用程序中使用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时,我看到用户表中的名字被打印出来。 我需要将用户表中的userId字段映射到session.loginId。
如何操作?

您可以通过调用以下命令获取当前用户:

def user = springSecurityService.getCurrentUser()

然后将该用户传递到UserRole find方法。

您可以通过调用以下命令获取当前用户:

def user = springSecurityService.getCurrentUser()

然后只需将该用户传递到UserRole find方法。

不是答案,但可以通过SpringSecurityUtils更简单地检查角色。如果被授予“ROLE\u USERSDASH”不是答案,则可以通过SpringSecurityUtils更简单地检查角色。如果被授予“ROLE\u USERSDASH”