ログインしているすべてのユーザーをプログラムでログアウトできるようにしたい。あるイベントですべてのユーザーを強制的にログアウトするにはどうすればよいですか?
質問する
7441 次
2 に答える
18
まず、web.xmlでHttpSessionEventPublisherを定義します
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
次に、Springsecurity.xml<session-management>
ファイルで定義します。
次に、コントローラーメソッドで使用SessionRegistry
して、すべてのセッションを無効にします。以下のコードは、すべてのアクティブなセッションを取得します。
List<SessionInformation> activeSessions = new ArrayList<SessionInformation>();
for (Object principal : sessionRegistry.getAllPrincipals()) {
for (SessionInformation session : sessionRegistry.getAllSessions(principal, false)) {
activeSessions.add(session);
}
}
アクティブな各セッションで、expireNow()
メソッドを呼び出して期限切れにするか無効にすることができます。
于 2013-02-07T16:03:57.327 に答える