Cómo invalidar una sesión de usuario cuando inicia sesión dos veces con las mismas credenciales

Estoy usando JSF 1.2 con Richfaces y Facelets.

Tengo una aplicación con muchos beans de ámbito de sesión y algunos beans de aplicación.

El usuario inicia sesión con, digamos, Firefox. Se crea una sesión con ID = "A"; Luego abre Chrome y vuelve a iniciar sesión con las mismas credenciales. Se crea una sesión con ID = "B".

Cuando se crea la sesión "B", quiero poder destruir la sesión "A". ¿Como hacer eso?

También. cuando el usuario en Firefox hace algo, quiero poder mostrar una ventana emergente o algún tipo de notificación que diga "Has cerrado sesión porque has iniciado sesión desde otro lugar".

Tengo un SessionListener que realiza un seguimiento de las sesiones creadas y destruidas. La cuestión es que podría guardar el objeto HTTPSession en un bean con ámbito de aplicación y destruirlo cuando detecto que el usuario ha iniciado sesión dos veces. Pero algo me dice que está mal y que no funcionará.

¿JSF realiza un seguimiento de las sesiones en algún lugar del lado del servidor? ¿Cómo acceder a ellos por identificador? Si no es así, ¿cómo eliminar el primer inicio de sesión de un usuario cuando inicia sesión dos veces?

Respuestas a la pregunta(3)

Su respuesta a la pregunta