====== 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.