Puedes implementar un PhaseListener con la lógica requerida, que reaccione a los eventos en PhaseId.RESTORE_VIEW.
Saludos,
Yo no me manejo con los Listener como ha dicho el compañero ya que estoy empezando, sin embargo, una posible solución sería al principio de cada página poner un "if" que compruebe si la session != null y si se cumple redireccionarlo a la página que quieras.
Así que te aseguras que si algún usuario sin loguear intenta acceder a una página que no debe que no pueda verla.
Salu2!!!
Saaaludos.
Les comento que el icefaces hace eso por defecto. Si el usuario tiene abierta la web por un largo tiempo sin hacer nada y este tiempo sobrepasa un parametro establecido la session caduca y si el usuario hace clic en algo le sale un mensaje "user session expired".
Este mensaje también es personalizable.
http://www.adictosaltrabajo.com/tutoriales/icefaces_desconexion.php
El problema que tengo es el siguiente, tengo un aplicacion con un bean en SessionScoped, el cual utilizo a lo largo de la aplicacion. Pero cuando pasa un largo tiempo, en el cual el bean caduca, con la ventana del navegador abierta, cuando hago click en un boton que tiene que ejecutar un metodo de ese bean, mi pagina tira un error, diciendo que el bean es nulo (y es por que ya caduco) pero lo que quiero es capturar ese error y redireccionar a alguna lado diciendo que el usuario tiene que loguearse de nuevo.
Alguna sugerencia?