アプリケーションからユーザーを削除したい場合は、(ユーザーがリンクをクリックするとすぐに) ログアウトすることも必要です。次の方法で、自分のセキュリティ コンテキストをクリアできます。
SecurityContextHolder.getContext().setAuthentication(null);
しかし、どうすれば彼のセキュリティコンテキストをクリアできますか?
アプリケーションからユーザーを削除したい場合は、(ユーザーがリンクをクリックするとすぐに) ログアウトすることも必要です。次の方法で、自分のセキュリティ コンテキストをクリアできます。
SecurityContextHolder.getContext().setAuthentication(null);
しかし、どうすれば彼のセキュリティコンテキストをクリアできますか?
SecurityContextHolder.getContext().setAuthentication(null); 現在のセッションを無効にします。
SecurityContextHolder.getContext() は、セッション スコープの Bean を返します。そのため、setAuthentication(null) を呼び出すと、現在のユーザーのセッションが無効になります。
したがって、ユーザーがリンクをクリックしたときにコントローラーからこれを呼び出すだけで、セッションが無効になります。
もちろん、これを行うためにすべてのコントローラーにコードを分散させたくないでしょう。そのため、代わりにフィルターを使用してこれを行うことができます。
フィルターでは、無効にするすべてのユーザー名のリストを含むシングルトン Bean を保持できます。次に、現在のセッションをリストと照合して、無効にするかどうかを決定します。