2011-02-08 15 views
18

¿Cuál es la mejor manera de establecer una fecha de caducidad para la cookie JSESSIONID enviada por Tomcat para una sesión servlet?Cookie JSESSIONID con fecha de caducidad en Tomcat

De manera predeterminada, 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, p. 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?

+0

Hola Tim, Estoy atrapado en un problema similar. ¿Qué solución optó por y tuvo éxito en lo que estaba tratando de lograr, por favor ayuda! – Ashish

Respuesta

51

Sé que esto es una vieja pregunta, pero si alguien está buscando esta información:

En Servlet 3.0, esto puede simplemente ser especificado en el web.xml:

<session-config> 
    <session-timeout>525600</session-timeout> 
    <cookie-config> 
     <max-age>31536000</max-age> 
    </cookie-config> 
</session-config> 
+0

yo estaba. gracias. –

+0

Sí, esto demuestra que nunca es demasiado tarde para agregar nueva información a una pregunta, ¡siempre que sea una buena información! Gracias, me ayudaste –

+2

de nuevo algo de información tardía, pero ahora, session-timout está en minues, max-age en segundos! –

-2

Si quieren sesiones para expiran después de 12 horas y sobreviven reinicia el servidor, añadir esto a su web.xml:

<session-config> 
    <session-timeout>720</session-timeout> 
</session-config> 

Tomcat está configurado por defecto para serializar sesiones para que sobreviven aplicación se reinicia. Ver http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html#Restart%20Persistence

+5

Desafortunadamente, el único efecto de es que el servidor almacena las sesiones durante 12h. Sin embargo, en el navegador, la cookie se establece sin una fecha de caducidad, y desaparece tan pronto como se cierra el navegador. –

1

No creo que sea posible hacer lo que quiera, sin cambiar el código de Tomcat.

Sin embargo, tenga en cuenta que puede tener un desagradable efecto secundario: 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 't, y el usuario perderá su sesión después de 12 horas, incluso si ha estado activo todo este tiempo.

Cuestiones relacionadas