Como invalidar uma sessão do usuário quando ele faz logon duas vezes com as mesmas credenciais

Estou usando o JSF 1.2 com Richfaces e Facelets.

Eu tenho um aplicativo com muitos beans com escopo de sessão e alguns beans de aplicativo.

O usuário efetua login no, digamos, Firefox. Uma sessão é criada com o ID = "A"; Em seguida, ele abre o Chrome e efetua login novamente com as mesmas credenciais. Uma sessão é criada com o ID = "B".

Quando a sessão "B" é criada, quero poder destruir a sessão "A". Como fazer isso?

Além disso. quando o usuário do Firefox fizer alguma coisa, desejo exibir um pop-up ou algum tipo de notificação dizendo "Você efetuou logout porque efetuou logon de outro lugar".

Eu tenho um sessionListener que monitora as sessões criadas e destruídas. O problema é que eu poderia salvar o objeto HTTPSession em um bean com escopo de aplicativo e destruí-lo quando detectar que o usuário efetuou login duas vezes. Mas algo me diz que está errado e não vai funcionar.

O JSF acompanha as sessões em algum lugar do lado do servidor? Como acessá-los por identificador? Caso contrário, como iniciar o primeiro logon de um usuário quando ele efetuar logon duas vezes?

questionAnswers(3)

yourAnswerToTheQuestion