Buenas,
No conozco nada de JSF pero hay un par de cosas que me llaman la atención.
-No veo que estés accediendo realmente al objeto de sesión del servidor. Estás seguro que con ese FacesContext.getCurrentInstance().getExternalConte xt().getSessionMap() estás accediendo a la sesión?
En JSF debería hacerse así:
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false );
session.setAttribute(clave, valor)
-Por otro lado, los servicios transversales como el de autorización deberían ser controlados mejor desde un filtro. Aquí tienes un ejemplo de esa aproximación con JSF:
http://javaknowledge.info/authentica...mefaces-3-4-1/
Un saludo