3

Websphere アプリケーション サーバー 7.0 に Web アプリケーションをデプロイしています。/j_security_check を使用したユーザー ログイン。セッション タイムアウトが発生すると、セッションは ivnvalidates になりますが、request.getUserPrincipal() はまだ null ではありません。null であるべきだと思います。ユーザープリンシパルをきれいにする方法は?

4

3 に答える 3

3

Vadim が提供するソリューションに加えて、2 つの代替回避策を説明する 2 つのリンクと、この一見反直観的な操作モードを引き起こすメカニズムの説明を共有したいと思います。

異なるアプリケーション間で SSO (シングル サインオン) を使用している場合、com.ibm.ws.security.web.logoutOnHTTPSessionExpire=true 設定を使用することには少し欠点があるかもしれません。この設定は、本質的に LTPA トークンを無効にします。サーバーのセキュリティ キャッシュは、タイムアウト時に LTPA トークンから更新されるため、無効化された LTPA により、残りのアプリケーションのユーザーの再検証 (ログイン) が発生します [1]。

[2] の質問 9 (私たちの質問と同じようです) への回答は、この問題の 2 つの代替回避策のアイデアを提供しています。この場合、有効期間と非アクティブに基づいてサーブレット フィルターを使用して認証をタイムアウトにすることができます。

[1]:セキュリティ キャッシュ、LTPA トークン、およびセッション タイムアウト(ログインが必要)

[2]: Q & A: WebSphere Application Server のセキュリティーに関するよくある質問

于 2012-05-06T15:15:32.957 に答える
3

球のドキュメントで解決策を見つけました。

  1. 管理コンソールで、「セキュリティー」 > 「グローバル・セキュリティー」をクリックします。
  2. [カスタム プロパティ] で、[新規] をクリックします。
  3. 「名前」フィールドに、com.ibm.ws.security.web.logoutOnHTTPSessionExpire と入力します。
  4. [値] フィールドに true と入力します。
  5. [適用して保存] をクリックして、変更を構成に保存します。
  6. サーバーを再同期して再起動します。
于 2012-05-04T09:09:18.027 に答える
2

心に留めておくべき重要なことは、有効/無効な HTTPSession は security と同じではないということです

それらは完全に異なります。

サーバーによって認証されると、必要に応じて、HTTPSession がなくてもアプリケーションを動作させることができます。

サーバーによって認証されると、LTPA トークンがブラウザーに返され、LTPA トークンは約 2 時間アクティブになります (これがデフォルトです)。

HTTP セッションの有効期限が切れても、何もしなければ LTPA トークンには影響しません。

LTPA トークンを無効にする ibm_security_logout を試すことができます。

サーブレット API の新しいバージョンでは、適切なログアウト操作が利用できるので、これが不要になると思います。

HTH

マングル

于 2012-04-30T23:46:34.620 に答える