2017-03-07 8 views
0

私は4つのWebアプリケーションをApache Tomcat 7サーバーに追加(デプロイ)しました。サーバーはこれらのアプリケーションのみをいつでもホストします。つまり、tomcatはこれらの4つのアプリケーションをホストするためにのみ使用されます。そして、私たちはROOTに何かを配備していません。Apache Tomcat 7のコンテキストパスの変更を聞く

今、私はの問題のセッション管理に直面しています。

問題は、アプリケーションごとに異なるセッションが発生していることです(問題がある場合は、各アプリケーションに異なるコンテナがあるためです)。

私は2つの可能なアプローチを考えることができます。

  1. セッションは、すべてのアプリケーション間で一貫性を維持。したがって、セッションを処理するのは簡単です
  2. 私はアプリケーションの変更( コンテキスト/コンテナの変更、私は推測します)のWebサーバーを聞いて、次に無効化セッションを作成、検証、または します。

ここでは、両方のアプローチに対応する2つの質問があります。

  1. すべてのアプリケーションで同じセッションを使用できますか (コンテナ)ですか?
  2. アプリケーション変更のためにApacheに聞くことが可能です (コンテナ)?

上記の質問に回答がの場合の場合は、どうすればいいですか?両方のアプローチがではない場合は、、より良いアプローチをお勧めしますか?

現在のアプローチ:私は別のアプリケーションに切り替える前にセッションを無効にしています。切り替えが完了したら、対応するアプリケーションの新しいセッションを作成します。ここでは、ユーザーがUIをブラウズするとすべてが正常に機能しますが、ユーザーが1つのアプリケーションに含まれていても問題が解決しない場合は、URL(Webアドレス)を使用して別のアプリケーションに直接アクセスしてください。

追加情報が必要な場合はお知らせください。

ありがとうございます。

答えて

0

アプリケーションコンテナとコンテキストは非常に分離されていますが、クロスコンテキスト通信を行う機会があります。 hereおよびhereを参照してください。

カスタムヘッダーとインターセプタを使用してカスタムセッション管理を行うこともできます。

+0

OK。しかし、私はこのアプローチでも、異なるアプリケーションコンテキスト間で同じセッションオブジェクトを使用することはできないと思います。 –

+0

@GaganVermaはい、同じセッションオブジェクトを使用することはできませんが、別のセッションで1つのセッションのセッションIDを検証できます。これは最高のハックです。あなたが探しているのは典型的なSSOです。あなたはTomcat組み込みのSSOバルブやSAMLのようなフレームワークのようなものを実装する方が良い –

関連する問題