web-dev-qa-db-ja.com

Tomcatの有効期限付きのJSESSIONID Cookie

Tomcatからサーブレットセッションに送信されるJSESSIONID Cookieの有効期限を設定する最良の方法は何ですか?

デフォルトでは、Cookieの有効期限は「セッション」であるように見えます。つまり、ブラウザが再起動するとすぐに、セッションはクライアントに表示されなくなります。しかし、ブラウザーを再起動した後でも、12時間開いたままにしておきたいです(それに応じてサーバーのセッションタイムアウトを構成します)。

Tomcat内で有効期限を設定する方法はありますか。いくつかの構成オプションまたは拡張モジュールを使用していますか?または、サーブレットフィルタを使用してJSESSIONIDの有効期限を設定する信頼できる方法はありますか?

28
Tim Jansen

サーブレット3.0以降では、これは単にweb.xmlで指定できます。

<session-config>
    <session-timeout>720</session-timeout> <!-- 720 minutes = 12 hours -->
    <cookie-config>
        <max-age>43200</max-age> <!-- 43200 seconds = 12 hours -->
    </cookie-config>
</session-config>

ご了承ください session-timeoutは分単位で測定されますが、max-ageは秒単位で測定されます。

60
Sander