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?