0

一部のアプリケーションにログイン/ログアウト ページを提供する EAI (外部認証インターフェイス) ソリューションを作成しています。

現在、2 つの WebSEAL 6.1 リバース プロキシの前に配置された F5 ロード バランサーがあり、WebSphere Application Server 8.0.0.10 で実行されている 2 つのアプリケーション間で要求のバランスを取ります。

ログイン ページは JSF 2.0.6 アプリケーションから提供されており、セッション タイムアウトがないようにクライアント状態保存を使用しています。

JSF 2.2を使用して実際のステートレスフラグを使用できないため、ページはリクエストスコープのBeanも使用して、可能な限りステートレスに近づけています。

次のシナリオで問題が見つかり、解決策を考え出すのに苦労しています

  1. 顧客はブラウザでログイン ページに移動します。WebSEAL はそれらをいずれかの WebSphere サーバーに送信します。
  2. その後、顧客はフォームを送信しますが、WebSEAL は新しい要求を別の WebSphere サーバーに送信します。
  3. 顧客はエラーに遭遇しますが、空白のログイン ページにリダイレクトされます。

OmniFaces FullAjaxExceptionHandler を使用して、ステップ 2 で生成された View Expired エラーをキャッチします。

また、WebSEAL に強制的に 2 つの WebSphere サーバー間のトラフィックをリダイレクトさせ、シナリオをシミュレートすることで、エラーを再現することもできます。

この問題は、1 つの WebSphere サーバーからのビュー ステートが他の WebSphere サーバーと互換性がないために発生しているようです。これは理にかなっています。

私たちの目的では、ユーザーをログインするために送信されたフォームの詳細のみが必要です。ビュー ステートは私たちの側では必要ありません。

あるサーバーのクライアント ビュー ステートに互換性を持たせたり、他のサーバーと連携させたりする方法はありますか?

この問題に関するヘルプをいただければ幸いです。

4

1 に答える 1

1

自分の質問に答えてよいかどうかわかりませんが、私たちにとって有効な解決策を見つけました。

OmniFaces の enableRestorableView タグを使用して、これらの状況でビューが破損または欠落している場合にビューを再構築しました。

http://showcase.omnifaces.org/taghandlers/enableRestorableView

中断を強制するテスト ケースと、ページのビュー ステートを改ざんするテスト ケースの両方で、タグにより、アプリケーションはフォーム パラメータを使用して続行できます。

于 2016-02-21T21:15:57.830 に答える