2017-09-08 20 views
0

他のブラウザとマシンでcookieベースのセッション管理を使用しているときに、WebアプリケーションがURLのjsessionidを渡していました。ブラウザでcookieとjsessionidを保存した場合、jsessionidがURLに渡される

この問題を解決するために、保存されたcookieとjsessionidをロケールストレージから削除し、URLの書き換えの代わりにCookieベースのセッション管理を使用し始めました。

クッキーベース管理を使用するために、これが起こっている理由、保存されているクッキー、およびjsessionidアプリケーションを説明できる人がいますか?アプリケーションでクッキーベースセッション管理のみが必要です。

環境:

Chromeブラウザ、Strutsの2、Tomcatの7、Javaの8

感謝事前インチ

答えて

0

jsessionidは、Javaアプリケーション/ Webサーバーがユーザーのセッションを追跡するために(ユーザーが既にログインしているなどの古いユーザーであることを認識するために)使用される特別なCookieです。サーバーへの最初のリクエストでは、ブラウザから送信されたCookieはありません。したがって、サーバーは、クライアントがクッキーをサポートしているかどうかを知りません。このサーバーの場合は、jsessionidをCookieとURL(URL書き換え)で送信します。しかし、次回以降のリクエストでは、クッキーが利用可能になります(以前のリクエストブラウザからは、サーバーから送信されたクッキーが保存され、同じコンテキストの場合、クッキーを既に持っているので、送信します)。そのため、次のリクエスト以降では、URLにjsessionidが表示されません。サーバがCOOKIEベースのトラッキングのみを使用するようにするには、以下のフラグメントを追加してください。web.xml

<session-config> 
    <!-- Only cookie based tracking --> 
    <tracking-mode>COOKIE</tracking-mode> 
</session-config> 
関連する問題