1

複数の地域 Web サイト TLD を提供するために構築されている 1 つの Web アプリケーションがあります。さらに、この Web アプリケーションは数千の動的サブドメインもサポートしています。例は次のとおりです。

www.example.com
www.example.co.uk
www.example.com.ar
fred123.example.co.uk  <== Thousands of this form
fred123.p.example.us   <== Thousands of this form

ドメインTLDが異なると新しいセッションが発生することは理解できますが、上記の後者の2つの例では問題が発生し始め、新しいセッションインスタンスも発生します. たとえば、ユーザーが次の場合:

  1. www.example.co.uk に移動します 新しいセッションが作成され、その後...
  2. リンクをクリックします: fred123.example.co.uk 新しいセッションが作成され、その後...
  3. リンクをクリックします: sam99.example.co.uk 新しいセッションが作成されます...

3 クリック ==>> 3 セッション!!!!

この問題は、GlassFish v3 が自動的に JSESSIONID のドメインをホスト要求の FQDN にするという事実によるものと思われます。

必要なのは、少なくともドメイン値からホスト名の部分を取り除いて、次のようなドメイン値を持つようにすることです。

.example.com
.example.co.uk
.example.com.ar
.example.co.uk  <== Thousands of this form
.p.example.us   <== Thousands of this form

これを達成する方法を知っている人はいますか。次の Q&A を見つけましたが、この場合、サブドメイン TLD がすべて一致するわけではありません。

JSP セッションに関する問題

したがって、sun-web.xml を静的に構成するソリューション、または Servlet 3.0 ソリューションを使用するソリューションは役に立たないようです。また、フィルター応答ラッパーの作成も機能しません。JSESSIONID Cookie はアプリケーション サーバーの下位レベルで割り当てられ、インターセプトするために Web アプリに公開されないためです。

私が持っていると思う他の2つのオプションは次のとおりです。

a) JSESSIONID Cookie ドメイン値を FQDN に設定する GlassFish v3 コードにパッチを適用して、一部のストリッピングが発生するようにするか、または

b) Sun Web Server 7.0 のリバース プロキシ レイヤーで、set-cookie ヘッダーで返される JSESSIONID Cookie ドメイン値を書き換える必要があることを行っていますが、これを行う方法の例を見つけることができませんでした。

誰でもこの問題を解決できますか? 手がかり/ヘルプは大歓迎です!

4

1 に答える 1

0

Apache と mod_headers を使用して Cookie を書き換えていますか? Tomcat を使用してサブドメイン セッション Cookie を許可する最良の方法

于 2010-07-10T21:44:26.907 に答える