2012-03-15 8 views
0

は(これは単なる例です)で、ユーザAのログを言うとsessionScopeと変数が設定されますのXPages内のすべてのsessionScopeと変数を取得

sessionScope.put("XYZ", "XYZ"); 

私はこれらのsessionnScope変数/オブジェクトを別のユーザーに属するすべて得ることができる方法はありますか?あなたが箱からそれらを取得傾けるよう

答えて

1

セッションスコープは、単一のユーザーに属しています。あなたはxpage/businessログにロギングを追加して、起こっていることを追跡することができます。もう1つのアプローチは、スコープを取得するユーザとしてログインし、デバッグバーを使用して調査することです。

3

理論上、作成された各sessionScopeへのポインタをapplicationScopeに格納するsessionListenerを登録できます...しかし、私の意見では、それは非常に悪い考えです。ユーザーのセッションデータをお互いに公開することを避けるためには、非常に注意する必要があります。

+0

web.xmlを変更することなくsessionListenerを追加するにはどうすればよいですか? –

+0

faces-config.xmlに登録します。 XSPスターターキットには、リファレンス実装が含まれています。http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XSP%20Starter%20Kit –

+0

faces-config.xmlにこれを追加する方法? < listener > - ステートメントは無視されますか? –

0

SessionScope変数は、ブラウザ/クライアントの単一のインスタンスに属します。あなたが匿名で "user one"としてログインしている場合、あなたは前と同じsessionScopeを持っています。ログアウトして「2つ使用」としてログインすると同じことが言えます。

私は、必要なsessionScopeデータが確実に設定されるように、すべてのページの前のページの読み込みでメソッドを実行するアプリを構築しました。そのデータの一部は、データが定義されているユーザーの名前です。こうすることで、ユーザー名が変更された場合、データを消去し、現在のユーザー用に再ロードします。

このアプローチを使用すると、ユーザーがログイン/ログアウトするときにユーザー名をキーとするMAPまたはJSONオブジェクトを定義することができますが、IDの変更は非常に賢明なことです開発とテストでのみ現実的です。それは生産上の通常のことではありません。

/Newbs

関連する問題