miércoles, 4 de octubre de 2017

Configurar SessionTimeout en springboot para un servidor Apache Tomcat

Configurar session timeout en spring boot para un embedded tomcat

Durante el desarrollo, aplicaciones de Java Web se ejecuta dentro de un embedded tomcat contenedor que está controlado por spring boot. El tiempo de espera de sesión puede configurarse usando el siguiente ajuste en application.yml.
server:
   session:
      timeout: 3600

Configurar session timeout en spring boot para un servidor independiente Tomcat.

La configuración anterior en application.yml funciona bien para el entorno de desarrollo. Sin embargo, no tendrá ningún efecto cuando el war se despliega en un independiente de Tomcat. La otra opción es crear un HttpSessionListener y establezca el maxInActiveInterval desde el event sessionCreated.

@WebListener
class SessionTimeoutListener implements HttpSessionListener {

 @Override
 void sessionCreated(HttpSessionEvent event) {
  event.getSession().setMaxInactiveInterval(60*5);
 }

 @Override
 void sessionDestroyed(HttpSessionEvent se) {

 }
}
La clase de escucha está anotado con @WebListener anotación por lo que será detectado automáticamente por contenedor.

Configuración de global session timeout para todas las aplicaciones deployadas en apache Tomcat.


 Todas las aplicaciones implementadas a tomcat hereda la configuración de $CATALINA BASE/conf/web.xml para cualquier configuración poner en este archivo se aplicará a cada aplicación.

<session-config>
  <session-timeout>60</session-timeout>
</session-config>

1 comentario: