Spring SecurityOAuth2を使用してRESTサービスを保護しています。アプリケーションは、いずれかに呼び出すことができ/oauth/authorize
、/oauth/token
または/rest-api
エンドポイント。トークンとrest-apiエンドポイントはステートレスであり、セッションを必要としません。
ユーザーが認証された後にセッションを無効にすることはできますか?もしそうなら、最善のアプローチは何ですか。に電話をかけるときはいつでも、ユーザーが常にサインインできるようにし/oauth/authorize
ます。現在、への呼び出し/oauth/authorize
は、セッションが存在するときは常に認証をスキップしています。
私の理解では、特定の一連のアクションを実行した後、プログラムでログアウトしようとしています。おそらく、SecurityContextLogoutHandlerを調べて、それがどのように機能するかを確認する必要があります。そこにログアウトする方法があります。アドバイスと呼んでも問題は解決すると思います。
public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
Assert.notNull(request, "HttpServletRequest required");
if (invalidateHttpSession) {
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
}
SecurityContextHolder.clearContext();
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加