Control de Sesiones en Tomcat: Guía Completa
Control de Sesiones en Tomcat: Guía Completa
Control de sesiones
• Una sesion HTTP es una serie de interacciones
entre un único cliente HTTP y un servidor Web
como Tomcat
• La especificación servlet incluye un objeto
HttpSession que almacena temporalmente la
info sobre un usuario.
– carritos compra
– sitios que requieren un registro…
• las sesiones se pueden configurar para
caducar tras un cierto tiempo de inactividad.
• tras caducar, se considera la sesión como
inválida
• Tomcat tiene administradores de sesión:
– utlizan el elemento Store para guardar y cargar
sesiones (es una opción)
– los administradores de sesiones implementan un
tipo de almacenamiento persistente para sus
sesiones, independientemente de que utilicen o
no la interfz de almacenamiento
• para especificar una implementación de
administración, es como especificar un reino
• <Manager className=“….”
• atributos=“” />
• casi todo el control sobre las sesiones se
realiza con los objetos Manager y Store, y
otras se pueden configurar en el fichero
web.xml
Persistencia de la sesión
• consiste en guardar las sesiones HTTP en un
disco al cerrar el servidor, y volver a cargarlas
cuando se reincia.
• si se necesita un lugar permanente para
almacenar la info,
– en base de datos relacional en directorio LDAP
– en su propio disco de almacenamiento
StandardManager
• el gestor utilizado por defecto que se utiliza
cuando ningun está configurado
explícitamente en el archivo server.xml es
StandardManager
• no utiliza ningún Store
• tiene su propio codigo para conservar todas
las sesiones en el sistema de archivo y lo hace
sólo cuando Tomcat se cierra.
• serializa las sesiones en un fichero
SESSIONS.ser en el directorio de trabajo de la
aplicación Web
(/work/Catalina/hostname/Webapp-name/
• StandardManager vuelve a cargar esas
sesiones desde el fichero cuando Tomcat se
reinicia y luego elimina el fichero.
• si cierre inesperado, no da tiempo a guardar
• Atributos de StandardManager
• <Manager
className=“org.apache.catalina.session.Stand
ardManager” maxInactiveInterval=“7200” />
PersistentManager
• otro gestor que se puede usar es
PersistentManager
• almacena sesiones en un almacen de
sesiones y así ofrece persistenca en caso de
fallos inesperados.
• la clase
org.apache.catalina.session.PersistenManager
implmenta una gestión de persistencia total.
• debe acompañarse de un elemento Store que
indique dónde guardar las sesiones,
ubicaciones soportadas y bases de datos JDBC
• <Manager
className="org.apache.catalina.session.Persis
tentManager" debug="0"
saveOnRestart="true"> <Store
className="org.apache.catalina.session.FileSt
ore"/> </Manager>
• solo vienen dos implementaciones para Store
– fileStore
– JDBCStore
• <Manager
className="org.apache.catalina.session.Persist
entManager" debug="0"
saveOnRestart="true"> <Store
className="org.apache.catalina.session.FileSto
re" directory="/home/jasonb/tomcat-
sessions"/> </Manager>
• en directorio que exista y con permisos de
escritura y escritura.
• FileStore guarda cada sesion en un fichero
llamado session ID.session