2016-07-08 4 views
0

Oracle 11gを使用してJSPを使用してWebアプリケーションを開発しています。私はセッション間でデータを維持でき、ログアウトするとセッションが無効になり、Webアプリケーションが安全に終了します。戻るボタンを押したときにJSPアプリケーションをログアウトしてリダイレクトする方法は?

ただし、戻るボタンの問題を解決できません。私のプロジェクトは銀行業務に関連しているので、アプリケーションのデータは機密扱いとみなされます。したがって、私は誰かが戻るボタンを押したときにセッションを終了し、ログインページにリダイレクトするという機能を実装したいと思います。それを試みるさらなる試みは、ログインページへのリダイレクトでなければなりません。 私は、次のスレッドをたどっています

Disable browsers back button if the session is invalidated

Prevent user from seeing previously visited secured page after logout

servlet session , after logout , when back button of browser is pressed , again the secure page is shown

しかし、私が直面しています問題は、それが均一に動作していないということです。キャッシュなしオプションを設定すると時々動作します。ページが期限切れになっている(予期している)というエラーが表示されることがあります。しかし、再度クリックして転送すると、そのページはそのまま表示されます(予期しない動作)。私が戻るボタンを押した後にURLを入力すると、アクセス可能になります。私は2つの別々のセッションを開いている場合、それは1つで働いていて、別のセッションでは働いていません。

これは少し混乱してスパゲッティコードにつながってきています。

この問題に関して何か回避策がありますか?

同じ問題に取り組んでいる他のいくつかの例が見つかりましたが、それらは別の言語(PHP)で書かれていました。私はPHPに精通していないので、コードの意味を解読することができませんでした。

何か助けていただければ幸いです。

よろしく、 Rajorshi Mukherjee。

答えて

0

問題の人を見た人に感謝します。確かに、私は誰かがこの縛りから私を助けることを期待していました。 とにかく、私が取り組んでいる問題の解決策を見つけました。私はこれらの記事で共有コード追加しました:

Disable browsers back button if the session is invalidated

Prevent user from seeing previously visited secured page after logout

プラグマ、キャッシュ制御を示した部分を、私が発見した私が現在持っているすべてのページ内でこのコードを含みますアプリケーションはこの問題を解決します。だから、ユーザがシステムにログインし、次に多くの異なるページを突き抜けて突然戻ると決めると、すべてのページでそのページが期限切れでアクセスできなくなることがわかります。しかし、ログインしている最初のページは、ユーザーが最初のページに戻った後に再度資格情報でログインしたい場合があるため、ユーザーにはまだ表示されます。私は当初、このページをもう一度見えるようにしていたので、私はこの問題で最初に問題を抱えていました。しかし、今私は、主にすべてのページにキャッシュ制御指令を含めていなかったことが原因であると認識しています。

みんな読んでくれてありがとう。

EDIT:もう一度別の問題に遭遇しました。使用していたサーブレットで
request.getRequestDispatcher("url").forward(request, response);
これは問題を引き起こしていました。ページが期限切れになった場合でも、ページを再読み込みすると、通常通りページが再び表示されるか、エラーページが表示されます。セッションがまったく期限切れになっていないかのように表示されます。これを克服するために、私は
response.sendRedirect("url");
のように応答を永久に次のページに移動していたので、ページのロードに関するすべての検証が正常に実行されていたため、誤ったデータが壊れていませんでした。

関連する問題