Prevención de ViewExpiredException al hacer clic en el botón de retroceso de Broswer después de la invalidación de la sesión

Estoy tratando de descubrir cómo prevenirSession Fixation en un formulario de inicio de sesión JSF en Glassfish 3.1. Fue fácil de hacer con Servlets, así que estoy tratando de hacer lo mismo con JSF (en base a esta pregunta: Recuperación del valor de ID de sesión de una solicitud JSF):

FacesContext fCtx = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) fCtx.getExternalContext().getSession(false);
session.invalidate();   
fCtx.getExternalContext().getSession(true); 

arece que funciona, pero cuando hago clic en el botón Atrás del navegador y vuelvo a ingresar los detalles de inicio de sesión, obtengo:

javax.faces.application.ViewExpiredException: viewId: /index.xhtml - La vista /index.xhtml no se pudo restaurar.

Funciona de nuevo solo después de "actualizar" y volver a enviar.

¿Cuál podría ser la razón para eso

Respuestas a la pregunta(1)

Su respuesta a la pregunta