Tengo una aplicación web que se ejecuta bajo la Primavera 3 con SpringSecurity 2.0.5.
Presentar al usuario los cambios en el sitio desde su última visita, me intente registrar el momento en el que su sesión se destruye. Por lo tanto, me he registrado org.springframework.context.ApplicationListener<HttpSessionDestroyedEvent> y también un javax.servlet.http.HttpSessionListener.
De la aplicación de los métodos de trabajo cuando el usuario utiliza el enlace de desconexión. Pero cuando se agota la sesión es como si los acontecimientos no se generan.

Estoy olvidando a escuchar a la derecha de los eventos? O es que no hay nada despedido por el tiempo de espera de sesión? ¿Hay alguna otra manera de lograr esto? Hace depender de un servidor de configuración (que es tomcat 6.0.24 por cierto)?

InformationsquelleAutor ma cılay | 2010-09-15

2 Comentarios

  1. 14

    No hago la Primavera, así que no hay texto acerca de esto, pero la javax.servlet.http.HttpSessionListener debe trabajar cuando se implementan y registrado correctamente. Usted necesita para registrarlo como un <listener> en el web.xml de la siguiente manera:

    <listener>
        <listener-class>com.example.MyHttpSessionListener</listener-class>
    </listener>

    Mantener en mente que tienes que probar el tiempo de espera de sesión de la manera correcta. El cierre de una ventana de webbrowser por ejemplo no inmediatamente destruir la sesión en el servidor. La sesión va a vivir tanto como el cliente no ha remitido ninguna solicitud HTTP para 30 minutos. Esos 30 minutos se el valor predeterminado tiempo de espera de sesión que es configureable por <session-timeout> entrada en web.xml.

    También, la servletcontainer no inmediatamente destruir sesiones después de exactamente el valor de tiempo de espera. Es un trabajo de fondo que se ejecuta en determinados intervalos de tiempo (por ejemplo, 5~15 minutos dependiendo de la carga y la servletcontainer hacer/tipo). Así que no se sorprendió al no ver a la sessionDestroyed() método al que se llama después de exactamente de 30 minutos de inactividad. Sin embargo, cuando el fuego de una solicitud HTTP en un tiempo-pero-no-destruido-aún sesión, será destruido inmediatamente.

    Véase también:

    • Parece que yo era impaciente y pasa por alto algunos NullpointerExceptions 😀 funciona. Thx

Dejar respuesta

Please enter your comment!
Please enter your name here