2012-04-24 123 views
5

我想显示登录用户的信息,如他的详细信息等注册时给出的...如何做到这一点?正如我新的Grails PLZ的帮助!使用IAM春季安全插件如何获取当前用户登录grails的id?

+0

您对使用上面的搜索字段有什么看法?请参阅[此问题](http://stackoverflow.com/questions/775053)以获取更多信息。 – aiolos 2012-04-24 08:15:55

回答

9

定义(在控制器或服务,你需要用户ID):

SpringSecurityService springSecurityService 

,并尝试:

springSecurityService.currentUser.id //loads user from db, and returns its id 

或:

springSecurityService.principal.id //if you need just id 
+1

完全合格的类名是'grails.plugin.springsecurity.SpringSecurityService' – 2014-04-06 23:25:49

14

那么你可以使用springSecurityService来获取控制器中的一些用户信息:

class MyController { 
     def springSecurityService 

     def myAction() { 
     def principal = springSecurityService.principal 
     String username = principal.username 
     ... 
     } 
    } 

或者在GSP

<sec:loggedInUserInfo field="username" /> 

这是一个非常普遍的问题。

+0

我知道这是一个旧的帖子,但是...我发现它,它导致我谷歌,找到这个:http://grails-plugins.github。 IO/Grails的 - 弹簧 - 安全核/文档/手动/导向/ helperClasses.html#securityTagLib – buzzsawddog 2014-04-14 17:21:19

1

添加您的服务或控制器类

def securityService 

这个返回cuureent用户ID的这个@the顶部。

securityService.currentUser.id