2012-04-24 121 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