====== Control de sesión con sessiontimer.js en FundeWeb ======
{{fdw2.0:sessiontimer.zip|Session Timer}}
Para añadir este control de sesión hay que seguir los siguientes cambios:
==== En los ficheros messages_??.properties añadir las propiedades: ====
sesion.cerrando.titulo=Sesi\u00F3n a punto de caducar
sesion.cerrando.texto=Su sesi\u00F3n caducará en
sesion.cerrar=Cerrar sesi\u00F3n
sesion.continuar=Continuar sesi\u00F3n
==== En el template.xhtml ====
* En la etiqueta html, añadir, si no está, xmlns:fdw="http://www.um.es/atica/fundeweb".
* Dentro del head añadir la librería:
* Quitar el tag p:idleMonitor
* Donde estaba el tag p:idleMonitor añadir:
sessionController.ajaxCalled({sessionTime : "#{seamComponentsProperties['duracion.sesion.miliseg']}"});
#{messages['sesion.cerrando.texto']}
Se puede adaptar el dialogo a nuestra aplicación pero manteniendo el widgetVar="cerrandoSesionDlg", las llamadas a sessionController y los identificadores que se incluyen en estas llamadas.
Se espera que el dialogo actual de sesión cerrada siga llamandose igual widgetVar="noSesionDlg".
Se valor "#{seamComponentsProperties['duracion.sesion.miliseg']}" obtiene el tiempo de sesión de las propiedades de Componentents, podemos cambiarlo si lo obtenemos de otra forma.
Es posible que en tu aplicación la llamada action="#{org.jboss.seam.web.session.isInvalid}" den problemas, en tal caso sustitúyelas por llamadas a un bean de tu aplicación que no haga nada action="#{miBean.accionVacia}".
==== Añadir sessiontimer.js al proyecto ====
Añadir sessiontimer.js en src/main/webapp/resources/js/
==== Funcionamiento por defecto: ====
* Se establece 25 minutos de tiempo de sesión, se puede cambiar añadiendo la propiedad duracion.sesion.segs en filtro-???.properties, cualquier llamada ajax reinicia este tiempo.
* Pasados 10 minutos desde la última llamada ajax las pulsaciones de teclas o clicks de ratón envían una petición ajax transparente para el usuario, reiniciando la sesión.
* Tras 25 minutos sin ninguna petición ajax se muestra un dialogo con una cuenta atras de 2 minutos y dos botones para continuar o terminar la sesión.