私はこのスレッドを参照していましたが、 Rob Winch
(Spring Security Lead) による最後の 2 番目の投稿で、彼は sessionRegisty にアクセスできると述べています。
<session-management>
<concurrency-control session-registry-alias="sessionRegistry"/>
</session-management>
したがって、HttpSessionEventPublisher
フィルターを登録web.xml
し、セクションで上記の設定を指定します<http>
。私はこれを追加しません:
<beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" />
私のクラスでは、次のように sessionRegistry のインスタンスを挿入します。
@Autowired
private SessionRegistry sessionRegistry
これは、ユーザーのセッションを見つけようとしている方法です。
List<SessionInformation> userSessions = sessionRegistry.getAllSessions(username,false);
for (SessionInformation userSession : userSessions){
userSession.expireNow();
}
プリンシパルは、ユーザーのユーザー名です。デバッグ時には、sessionRegistry
変数principals
とsessionids
変数は空です。ここで何か間違ったことをしていますか、それとも krams のブログで言及されている手順がこれを行う唯一の方法ですか?