3

私は Web アプリケーションを持っていsay Aます。このアプリケーションにログインすると、ホームページにリンクが含まれています。

そのリンクをクリックすると、別の Web アプリケーションにログインし、A のホームページ内Say Bで開きます。iframe

両方のアプリケーションが異なるサーバーにデプロイされています

BアプリケーションのBアプリケーション内のリンク/ボタンをクリックすると、(iframe in A) session有効期限が切れます。

セッションを維持するために、セッション ID を追加して B アプリケーションの URL を書き換えます。

そうすることでログインです。

しかし、request.getSession()常に使用すると、新しいオブジェクトが取得されます。

セッションオブジェクトに値があるため、以前のセッションオブジェクトが必要です。

私がセッションを維持できるようにする方法はありますか???

ありがとう

4

4 に答える 4

0

セッション トラッキング モードがCOOKIEそれ以外の場合は、2 つのアプリで異なるように Cookie 名を変更してみてください。

  <session-config>
    <session-timeout>30</session-timeout>
    <cookie-config>
      <!-- change below -->
      <name>web-app-A</name>
      <path>/</path>
      <http-only>true</http-only>
    </cookie-config>
    <tracking-mode>COOKIE</tracking-mode>
  </session-config>
于 2013-11-15T09:04:15.837 に答える
0

セッションは、Web アプリケーションでユーザーごとに作成されるマップと考えてください。

つまり、WebApp-A に属する session1 はそのアプリケーションに対してローカルであり、WebApp-B に属する session2 はそのアプリケーションに対してローカルです。

URL に表示される jsessionId は、アプリケーション サーバーがその Web アプリケーションのセッション オブジェクトを識別するために使用するキーです。

したがって、あなたの場合、他の手段でデータを共有することを考える必要があります。

  1. キーと値のペアにアクセスしたいだけの場合は、リクエスト パラメータとして URL を介して渡します。
  2. オブジェクトにアクセスしたい場合は、データベースのような共有ストレージの使用を検討してください。または分散キャッシュ
  3. ユーザーが両方のアプリケーションにログインすることだけが必要な場合は、シングル サインオン ソリューションが必要です。

質問の見た目から、ユーザーが両方のアプリケーションに 1 つのチャレンジでログインできるようにするだけです。SSO ソリューションについて読んでください。

セッション オブジェクトは異なります。

それが役立つことを願っています。

于 2013-11-15T08:19:16.800 に答える
0

この Stackoverflow の質問では、いくつかの関連事項について説明しています。

ある Tomcat サーバーから別の Tomcat サーバーにセッションを転送する方法は?

于 2013-11-15T08:22:16.967 に答える