2012-08-03 8 views
7

thisスレッドを参照していましたが、最後の2番目の投稿でRob Winch(Spring Security Lead) sessionRegistyへのアクセス権を持っている:スプリングセキュリティ - アプリケーション内でセッションレジストリを取得する方法はありますか(コンプリートフィルタをカスタマイズするexpliciltyなし)

<session-management> 
    <concurrency-control session-registry-alias="sessionRegistry"/> 
</session-management> 

したがって、私はweb.xmlHttpSessionEventPublisherフィルタを登録し、私の<http>セクションで、上記の設定を指定します。私はこれを追加しないください

<beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" /> 

と私のクラスでは、私はこのようなsessionRegistryのインスタンスを注入:

@Autowired 
private SessionRegistry sessionRegistry 

これは私がAのセッションを見つけるためにしようとしている方法ですユーザー:

List<SessionInformation> userSessions = sessionRegistry.getAllSessions(username,false); 
     for (SessionInformation userSession : userSessions){ 
      userSession.expireNow(); 
     } 

プリンシパルはユーザーのユーザー名です。デバッグ時には、変数principalssessionidsの変数は空です。 ここで何か間違っているのですか、これを行う唯一の方法はkrams's blogです。

+0

何が問題なのですか? – Xaerxess

+0

@Xaerxess - 挿入されるsessionRegistry変数にセッションIDまたは認証がありません。私はsessionRegistry beanを明示的に定義していないことに注意してください。 – Daud

+0

'sessionRegistry'にアクセスするクラスのコードを投稿できますか?レジストリが空であるかどうかをどうやって確認しますか? – Xaerxess

答えて

関連する問題