2017-10-06 8 views
0

セットアップ:スプリングブートとセキュリティ:302ステータスコードの応答を拡張するには?

  • 春ブートアプリケーション
  • のOAuth2のセキュリティUIの実装のための
  • ReactJS

利用の場合:アプリケーションへ

  • ログイン
  • 同じブラウザで同じアプリケーションとのオープン他のタブ
  • タブのいずれかを、ユーザーにおけるアプリケーションからのログアウトが最初のタブに
  • ゴービューログインするためにリダイレクトされます(ユーザーがすでにログアウトして、私はページを更新する場合、私は、ログインを取得しますPOST)/ PUT/PATCH要求をトリガーするアクションを実行します。

要求::

Request URL:http://localhost:8080/api/info 
Request Method:PUT 
Status Code:302 Found 
Remote Address:[::1]:8080 
Referrer Policy:no-referrer-when-downgrade 
accept:application/json 
Accept-Encoding:gzip, deflate, br 
Accept-Language:en-US,en;q=0.8,sv;q=0.6,ru;q=0.4,uk;q=0.2,fr;q=0.2 
Cache-Control:no-cache 
Connection:keep-alive 
Content-Length:66 
Content-Type:application/json 
Cookie:_ga=GA1.1.1868465923.1505828166; _gid=GA1.1.612220229.1507272075; session=e4oSW4Kq; prod_user_session=4d6b615f-521704; user_session=g3ggLxJDomyZ 
Host:localhost:8080 
mode:cors 
Origin:http://localhost:8080 
Pragma:no-cache 
Referer:http://localhost:8080/profile 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 

応答:要求と応答以下の例

Cache-Control:no-cache, no-store, max-age=0, must-revalidate 
Connection:keep-alive 
Content-Length:0 
Date:Fri, 06 Oct 2017 12:12:26 GMT 
Expires:0 
Location:http://localhost:8080/login 
Pragma:no-cache 
X-Content-Type-Options:nosniff 
X-Frame-Options:DENY 
X-XSS-Protection:1; mode=block 

この応答システムはhttp://localhost:8080/loginにPUTリクエストをトリガし、失敗した後、PUTメソッド理由ではありませんhttp://localhost:8080/loginリクエストが許可されています。

質問:

私は私はすでにログアウトしてるので、私は302のステータスとLocation:http://localhost:8080/loginヘッダを取得していますことを理解しています。私はJSON本体でこのケースの応答を延長したい、または少なくともこの場合、私はステータスコードが302でなくなるようにします。

答えて

1

あなたの質問を正しく理解していれば、通常のウェブページの負荷(produces="text/html")とAJAXの呼び出し(produces="application/json")を経由します。現在、不正なAJAXコールは正当なページであるログインページにリダイレクトされるため、401応答コードはありません。以下は、XML設定を使用して実現する設定の例です。Spring Security Ajax loginと@Configuration config https://stackoverflow.com/a/27300215/1718213

さらに使いやすいもう1つのオプションは、指定したユーザーのすべてのタブにログアウトイベントを通知するためのSpringのWebSocketサポートです。ログインページにリダイレクトするために各タブをトリガする(すべてのデバイスとブラウザで)開いている可能性があります。

関連する問題