7

私は前日にapachetomcatのドキュメントを読んだことがありますが、についてはとても混乱していemptySessionPathます。私の知る限り、trueに設定されている場合、emptySessionPathはWebアプリケーションのルートフォルダーに保存されます。用語の正しい定義と、 emptySessionPathそれがtrueとfalseに設定されている場合はどうなりますか?

案内してください。よろしくお願いします。

4

4 に答える 4

8

このemptySessionPathフィールドには、すべてのCookieをルートURLパスに保存する必要があるか/(if emptySessionPath=true)、保存しないか(それ以外の場合)が示されます。

これは、Apacheのコネクタによって使用されます。詳細はこちらをご覧ください(これは、Connnectorオブジェクトの一部であるAJPコネクタ用です)。

これが基本的に意味することは次のとおりです。

emptySessionPathtomcatでが有効になっている場合、 JSESSIONIDCookieはルートの「/」パスに書き込まれます。これは、使用しているWebアプリが同じCookieを使用することを意味します。各WebアプリはCookieの値を書き換えて、そのWebアプリのセッションIDを保持しますが、これらはすべて異なります。

これを有効にして、異なるWebアプリケーションのサーブレットを使用すると、同じユーザーから異なるサーブレットへのリクエストによってCookieが上書きされるため、サーブレットが再度対話されると、新しいセッションが作成され、すでに設定されているセッションが失われます。 。

が設定されていない場合emptySessionPath、ブラウザには複数のCookieがあり(ルートには1つありません)、異なるWebアプリが上記のように互いのCookieを書き換えることはありません。

JSESSIONIDWebアプリケーションのIDセッションです。ここで完全な説明を参照してください。

更新:使用法に関するこの情報はやや古くなっています。最近のTomcatのセッションパスを設定する方法の最新情報については、こちらを参照してください。

于 2010-12-02T09:30:04.807 に答える
5

emptySessionPathがtrueに設定されている場合、JSESSIONID cookieからコンテキストパスが削除されます。cookieパスが/に設定されます。この属性は、クロスアプリケーションの自動化メカニズムに使用できます。

于 2010-12-02T10:28:13.403 に答える
4

ご存知かもしれませんが、セッションはCookieによって維持されることがよくあります。Cookieには、特定のリクエストに対してブラウザから返されるかどうかを決定する2つの値、cookieDomaincookiePathがあります。cookiePathはリクエストのそれと一致する必要があります。

リクエストがあります

 /some/request/for/this.html

CookieはCookieパスで返されます:

 / 
 /some
 /some/request

ただし、Cookieパスの場合はそうではありません。

 /other

仕様により、セッションは異なるWebアプリケーション間で共有されないため、Webアプリケーションをでfoo.warデプロイしている場合/foo、セッションCookieパスはデフォルトでに設定されます/foo

Connector.emptySessionPathはConnectorの保護された変数のようです。コードを読んでいませんが、Tomcatのシングルサインオンまたは共有セッションと関係があると思います。この場合、1つのコンテキストにログインし、すべてが認証されます。この場合、Cookieパス/はセッションCookie用である必要があります。

于 2010-12-02T08:05:02.400 に答える
0

念のため、web_appバージョン3.0の場合、Cookieの構成は標準化されているため、webapp3.0でのAJPのemptySessionPathと同等です。

<session-config>
<cookie-config>
<path> / </ path>
<secure> true </ secure>
</ cookie-config>
</ session-config>

于 2012-11-27T12:14:06.703 に答える