2012-02-03 16 views
0

Spring Securityを使用してNo Cache機能を実装する方法について知りたいと思います。つまり、ユーザーがアプリケーションからログアウトすると、ブラウザの戻るボタンを使用して前のページにアクセスすることができます。Spring Securityを使用してキャッシュを実装しない

私はこの動作を防止し、ユーザーにページの有効期限切れのメッセージを表示して、彼に再ログインを依頼します。

どのように私は春のセキュリティを使用してこれを達成することができます。

答えて

1

ユーザーがブラウザで戻るボタンを押すと、ローカルブラウザのキャッシュに戻って新しいリクエストを実行しない可能性があります。

必要な機能を実行できる唯一の方法は、ユーザーセッションがまだ有効かどうかを各ページで確認する必要がある場合です。ただし、ユーザーがブラウザでjavascriptをオフにすると、この方法は無効になります。

+0

はい、私はこの機能を理解しています。しかし、ユーザがブラウザ内でjavascriptを切り替えるというシナリオでは、これは失敗するでしょう。 他の方法でユーザーにそのような行為をさせないようにする方法はありますか? – Vivek

+0

ページの読み込み時にjavascript/ajaxを使用してコンテンツを常に動的に読み込むこと以外に、私はそこに解決策がないと思います。 –

0

私はページキャッシュはアプリケーションセキュリティの責任ではないと思います。
[戻る]ボタンを使用するときにキャッシュされたページが表示されないようにするアプリケーションが必要な場合、アプリケーションはno-cacheヘッダーをレスポンスに送信する必要があります。
これらを使用すると、ブラウザは戻るボタンを使用してページを再度要求し、春のセキュリティのログイン設定とアクセス拒否の設定が使用されます。

HTTPヘッダ:

response.addHeader("Pragma", "no-cache"); 
    response.addHeader("Cache-Control", "no-cache"); 

    response.addHeader("Cache-Control", "no-store"); 
    response.addHeader("Cache-Control", "must-revalidate"); 
    // expires on some date in the past 
    response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT"); 
+0

はい、上記のヘッダをフィルタに追加しましたが、ユーザは前のページにナビゲートできます。 : – Vivek

+0

これらのヘッダーを設定する前に、これらのキャッシュされたページが同じURLからキャッシュされた可能性がありますか? –

+0

また、これらのヘッダーを追加した後にURLにスプリングセキュリティを追加すると、ヘッダーはユーザーが前のページに戻るのを妨げませんが、ページがブラウザーのキャッシュから表示されないようにします。 –

関連する問題