2017-03-27 4 views
0

graam 2.4.4アプリケーションでspring-security-2.0を使用するIam。私は自分のutilsパッケージに以下のgroovyクラスを作成しました。grails utilsパッケージ内でspringSecurityServiceを取得する方法

package com.util.portal; 
 

 
import com.services.portal.UserSessionService 
 
import javax.servlet.http.HttpSessionEvent; 
 
import javax.servlet.http.HttpSessionListener; 
 
import org.springframework.context.ApplicationContext; 
 
import org.springframework.web.context.support.WebApplicationContextUtils; 
 

 

 
public class CustomSessionControl implements HttpSessionListener { 
 

 
\t public void sessionCreated(HttpSessionEvent sessionEvent) { 
 
\t \t /* Do whatever we want */ 
 

 
\t } 
 

 
\t public void sessionDestroyed(HttpSessionEvent sessionEvent) { 
 
\t \t /* Do whatever we want */ 
 
\t } 
 

 
}

私はちょうど原則を取得するのsessionCreated()メソッド 内springsecurityServiceを使用します。

実際に私の意図は、(sessionCreatedメソッドから)自分自身を作成するときに、すべてのユーザーの詳細をセッションに設定することです。

どうすればいいですか?

答えて

0

springSecurityServiceHoldersから取得できます。この方法で

import grails.util.Holders 

::トップに

def springSecurityService = Holders.applicationContext.springSecurityService 
def user = springSecurityService.currentUser.id 
+0

私はこのようなコードがspringSecurityService = Holders.applicationContext.springSecurityService DEF実装。文字列UserId = springSecurityService.getPrincipal()。getId();メッセージのようにエラーが発生しました:ヌルオブジェクトでメソッドgetId()を呼び出せません –

+0

良いニュースは、「springSecurityService」が注入されていることです。そしてあなたは何のために校長が必要ですか? –

+0

私はちょうどログインしているユーザーのIDが必要です。これは主体から得るでしょう –

関連する問題