2017-09-20 9 views
0

アプリケーションのログインページにリダイレクトするWebFilterがあります。 にリダイレクトするために、という名前のビューパラメータを追加しました。 redirectOnLogin最終ログインを成功させるために使用されます。ナビゲーション結果を検証して検証することは可能ですか?

このクエリパラメータを操作すると、JSFナビゲーションエラーが発生しやすくなります。したがって、結果が有効であることを確認することでこれを先取りしたいと思いますが、私はJSF結果の事前検証のメカニズムを明らかにすることはできませんでした。

答えて

1

最も簡単なことは、redirectToLoginパラメータを操作できないことを確認することです。またはその操作が検出されます。

あなたは(少なくとも)二つの方法

  1. それに「塩」を追加し、ハッシュを作成し、元のページ名を取るには、これを解決することができます。
  2. アドインこれは、ログイン・サーバ
  3. への要求にそれは多分#戻りページまたはPARAMなどとして、それを追加する(ログイン・サーバによって返される。
  4. "でそれを受け取ったことを確認していることがありますredirectOnLogin'のページ、同じ塩をページ名を使用し、同じ方法でハッシュを作成します。これらを比較し、両者が一致した場合、彼らはエラーをスローしていない場合は、罰金です。

それとも、

ができ
  1. 'redirectOnLogin'セッション中のページ
  2. ログインサーバーからの返信を、最終ページに一致するかどうかをチェックします。
+0

お寄せいただきありがとうございます!どちらもうまくいくでしょう。確かに、私はこれらの行に沿ってすでに考えていましたが、問題の仕組みが存在するのか、作成することができるのかをまだ知りたいと思います。 – matsa

+0

FacesContextからいくつかのレベルのすべてのメソッドをチェックしましたが、ビューが存在するかどうかを確認するために 'true'または 'false'を返すものは見つかりませんでした(** my ** knowledge)。しかし、それが存在する場合、または存在しない場合、その結果に対してどのように行動しますか?それが存在しなければ、とにかく404が得られます。それが存在すれば?トラフ(それが操作されたかどうかを知りたくない)を行かせますか?だから、可能であるかどうかを知る唯一の人はBalusCですが、私は彼がこの理論的な質問に対して答えを提供するかどうかはわかりません。乾杯... – Kukeltje

+0

結果が無効であれば、その出現に関する情報を記録し、その代わりに "家"をリダイレクトします。それが有効な場合、私はちょうどそこに行くだろう。結局のところ、ユーザーがそこに行くための資格情報を持っていない場合、彼はちょうど "家に"リダイレクトされます。 入力いただきありがとうございます。はい、私はまだBalusCが彼の帽子からウサギを引っ張るのを見たいと思っています。前回私がこのような質問をしたとき、彼はOmniFacesに目的の機能を加えました。 :) – matsa

関連する問題