最新のChromeブラウザを使用してCookieをオフにせずにアプリケーションにログインしているときに、GlassfishがURL書き換えに頼る理由は何ですか?設定するのを忘れたものはありますか?それはランダムに起こります。
1 に答える
JSESSIONIDは、ユーザーの現在のHTTPセッションを決定する値です。通常、リクエストをサーバー上の適切なセッションオブジェクトに接続するために、ブラウザのCookie(JSESSIONIDという名前)に保存されます。
JSESSIONIDが元のリクエストに存在しない理由は、サーバーがJSESSIONIDをブラウザに送り返す機会がなかったためと考えられます。現在のJSESSIONIDCookieのないページ上のリンク(たとえば、c:urlを使用)は、URL書き換えを使用して生成されます(URLにはjsessionidが含まれます)。subsequntリクエストでは、JSESSIONIDがブラウザのCookieとして保存された後、URLの書き換えは行われません。
ユーザーのブラウザがCookieをサポートしていない場合(またはCookieの使用がオフになっている場合)、URLの書き換えにより、ユーザーは各URLに追加されたjsessionidによって同じセッションに接続し続けることができます。
ただし、URL書き換えをオフにする場合は、glassfish-web.xmlファイルでenableURLRewritingプロパティをfalseに設定することでこれを行うことができます。
<property name="enableURLRewriting" value="false"/>
また、適切なCookieが存在することを確認し、より適切なURLにリダイレクトすることで、URLの書き換えを削除することもできます。