3

アプリケーションからユーザーを削除したい場合は、(ユーザーがリンクをクリックするとすぐに) ログアウトすることも必要です。次の方法で、自分のセキュリティ コンテキストをクリアできます。

SecurityContextHolder.getContext().setAuthentication(null);

しかし、どうすれば彼のセキュリティコンテキストをクリアできますか?

4

1 に答える 1

1

SecurityContextHolder.getContext().setAuthentication(null); 現在のセッションを無効にします。

SecurityContextHolder.getContext() は、セッション スコープの Bean を返します。そのため、setAuthentication(null) を呼び出すと、現在のユーザーのセッションが無効になります。

したがって、ユーザーがリンクをクリックしたときにコントローラーからこれを呼び出すだけで、セッションが無効になります。

もちろん、これを行うためにすべてのコントローラーにコードを分散させたくないでしょう。そのため、代わりにフィルターを使用してこれを行うことができます。

フィルターでは、無効にするすべてのユーザー名のリストを含むシングルトン Bean を保持できます。次に、現在のセッションをリストと照合して、無効にするかどうかを決定します。

于 2012-08-03T05:19:05.523 に答える