7
thisスレッドを参照していましたが、最後の2番目の投稿でRob Winch
(Spring Security Lead) sessionRegistyへのアクセス権を持っている:スプリングセキュリティ - アプリケーション内でセッションレジストリを取得する方法はありますか(コンプリートフィルタをカスタマイズするexpliciltyなし)
<session-management>
<concurrency-control session-registry-alias="sessionRegistry"/>
</session-management>
したがって、私はweb.xml
でHttpSessionEventPublisher
フィルタを登録し、私の<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();
}
プリンシパルはユーザーのユーザー名です。デバッグ時には、変数principals
とsessionids
の変数は空です。 ここで何か間違っているのですか、これを行う唯一の方法はkrams's blogです。
何が問題なのですか? – Xaerxess
@Xaerxess - 挿入されるsessionRegistry変数にセッションIDまたは認証がありません。私はsessionRegistry beanを明示的に定義していないことに注意してください。 – Daud
'sessionRegistry'にアクセスするクラスのコードを投稿できますか?レジストリが空であるかどうかをどうやって確認しますか? – Xaerxess