Permitir solo una sesión por usuario

Tenemos una aplicación web desarrollada utilizando struts2, spring & hibernate.

La aplicación necesita una funcionalidad que un usuario puede iniciar sesión desde un solo navegador.

Diga si el usuario x está conectado en el navegador de pc-1, entonces no puede iniciar sesión desde ningún otro lugar.

Lo intenté implementando el mapa de sesión y almacené las sesiones en el mapa global, pero esto falla cuando el usuario cierra la sesión e intenta iniciar sesión nuevamente.

Incluso falla críticamente si el usuario no cierra la sesión y los tiempos de espera de la sesión, pero el mapa no se borra.

Cualquier idea mejor para implementar esta funcionalidad.

No queremos obstruir el inicio de sesión del usuario, pero no queremos que los usuarios exploten la aplicación permitiéndole compartir las credenciales y permitir que se realicen múltiples usuarios con el mismo inicio de sesión.

Respuestas a la pregunta(6)

Su respuesta a la pregunta