Quelle est la meilleure façon de définir une date d'expiration pour le cookie JSESSIONID envoyé par Tomcat pour une session de servlet?
Par défaut, la date d'expiration du cookie semble être "session", ce qui signifie que la session disparaît dans le client dès que le navigateur redémarre. Mais je voudrais le garder ouvert pendant 12h, même après un redémarrage du navigateur (et configurer ensuite le délai d'expiration de la session sur le serveur en conséquence).
Existe-t-il un moyen de définir une date d'expiration dans Tomcat, par exemple en utilisant une option de configuration ou un module d'extension? Ou existe-t-il un moyen fiable de définir une date d'expiration pour JSESSIONID à l'aide d'un filtre de servlet?
Depuis Servlet 3.0, cela peut simplement être spécifié dans le 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>
Notez que session-timeout
est mesuré en minutes mais max-age
est mesuré en secondes.