次のように/ログアウトのための春のセキュリティデフォルトのログアウトURLは、ログイン後、春のセキュリティが処理されます。
- 現在sesion障害。
- クリアリメンバー・ミーは、ユーザーの現在のレコードに関連付けられています。
- 空に現在SecurityContextが。
- ログインページにリダイレクト。
春のセキュリティは、私たちは上記を設定することで、これらのデフォルトの動作を変更することができます。
カスタム動作ログ
私たちは、以下の構成春のセキュリティ設定を追加します。
...... 。そして() 。ログアウト() .logoutUrl( "/サインアウト" ) //。logoutSuccessUrl( "/サインアウト/成功" ) .deleteCookies( "JSESSIONID" ) 。そして() ......
ログイン/サインアウトのために上記の設定URLは、URL /サインアウト/成功に成功したジャンプを出た後に、クッキーのJSESSIONIDの成功を出た後、名前を削除します。
対応LoginController中/サインアウト/成功を添加する方法:
@ResponseBody @ RequestMapping(「/サインアウト/成功」) のパブリック文字列サインアウト(){ リターンに成功して終了する」、「もう一度ログインしてください。 }
そして、認証フリーパスに/サインアウト/成功を追加します。このプロジェクトは、アクセス/サインアウトにログオンし、起動します。
終了成功が見られ、および/サインアウト/成功への要求をリダイレクトすることができます。
logoutUrlを指定することに加えて、我々はまた、成功の後ろの出口ロジックを処理するためにlogoutSuccessHandlerプロセッサによって成功裏に終了指定することができます。
。そして() 。ログアウト() .logoutUrl( "/サインアウト" ) .logoutSuccessUrl( "/サインアウト/成功" ) .logoutSuccessHandler(logoutSuccessHandler) // プロセスが終了に成功し .deleteCookies( "JSESSIONID")
パッケージcom.goldwind.handlerのクラスCustomLogoutSuccessHandlerを作成します。
パッケージcom.goldwind.handler。 輸入org.springframework.http.HttpStatus; 輸入org.springframework.security.core.Authentication。 輸入org.springframework.security.web.authentication.logout.LogoutSuccessHandler; 輸入org.springframework.stereotype.Service。 輸入javax.servlet.ServletException; インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; インポートにjava.io.IOException; / ** * @Author:ZY * @description:カスタム・ロジックが正常に終了します * @Date:2020年2月16日 * / @サービス パブリック クラス CustomLogoutSuccessHandler 実装LogoutSuccessHandler { @オーバーライド 公共 ボイド onLogoutSuccess(HttpServletRequestのHttpServletRequestを、HttpServletResponseのHttpServletResponseの、認証の認証)はスローにIOException、ServletExceptionがを{ httpServletResponse.setStatus(HttpStatus.UNAUTHORIZED.value())。 httpServletResponse.setContentType( "アプリケーション/ JSON;のcharset = UTF-8" )。 。httpServletResponse.getWriter()ライト(「成功裏に終了し、再度ログインしてください」); } }
上記と同様の効果:
参考記事:
[1] 春セキュリティログ(転載)