management - Cookie JSESSIONID con fecha de caducidad en Tomcat
session java (3)
¿Cuál es la mejor manera de establecer una fecha de vencimiento para la cookie JSESSIONID enviada por Tomcat para una sesión de servlet?
Por defecto, la fecha de caducidad de la cookie parece ser ''sesión'', lo que significa que la sesión desaparece en el cliente tan pronto como el navegador se reinicia. Pero me gustaría mantenerlo abierto durante 12 horas, incluso después de reiniciar el navegador (y luego configurar el tiempo de espera de la sesión en el servidor en consecuencia).
¿Hay alguna forma de establecer una fecha de vencimiento dentro de Tomcat, por ejemplo, usando alguna opción de configuración o módulo de extensión? ¿O hay una manera confiable de establecer una fecha de vencimiento para JSESSIONID usando un filtro de servlet?
Si desea que las sesiones expiren después de 12 horas y sobrevivan los reinicios del servidor, agregue esto a su web.xml:
<session-config>
<session-timeout>720</session-timeout>
</session-config>
Tomcat está configurado de manera predeterminada para serializar las sesiones para que sobrevivan a los reinicios de la aplicación. Ver http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html#Restart%20Persistence
No creo que sea posible hacer lo que quiera, sin cambiar el código de Tomcat.
Sin embargo, tenga en cuenta que podría tener un efecto secundario desagradable: si un usuario inicia una sesión y permanece activo durante doce horas, su tiempo de espera de sesión se actualizará en consecuencia (el tiempo de espera se actualizará en cada solicitud), pero su cookie no lo hará, y el usuario perderá su sesión después de 12 horas, incluso si ha estado activo todo este tiempo.
Sé que esta es una vieja pregunta, pero si alguien más está buscando esta información:
En Servlet 3.0, esto simplemente se puede especificar en web.xml:
<session-config>
<session-timeout>525600</session-timeout>
<cookie-config>
<max-age>31536000</max-age>
</cookie-config>
</session-config>