Olá pessoal;
Seguinte, faz algum tempo que temos algumas aplicações utilizando uma autenticação e autorização no JAAS. Essas aplicações estão no JBoss 4.2. Para administrar as Roles, foi criado uma interface web que também utiliza o JAAS.
Bom, acontece que de uns tempos pra cá, alguns usuários estão utilizando varios sistemas que demandam autenticação. Acontece que, quando um usuário esta autenticado em um determinado sistema… ele tem suas credentials e suas roles, daquele sistema. Mas como esse fulando, vai utilizar um outro sistema que utiliza o JAAS, ele faz a autenticação e carrega uma nova lista de roles, e acaba matando aquelas roles que já avisa sido carregada em outro sistema.
Estive avaliando que isso acontece porque o JBoss 4.2 trabalha com um cache, chamado AuthenticationCachePrincipals, que mantém o usuário logado em uma sessão. Removi o cache de autenticação e até funcionou, bem instável, e bem lento (pois toda hora acesso o LoginModule…). Ja tentei diversos artificio (gambi) para resolver este problema, mas acho que o correto é resolver no servidor de aplicação ou nas configurações do JAAS.
Fiz alguns testes bem simples com suas aplicações que fazem autenticação no JAAS, a primeira autentica sem problemas… quando vou autenticar o mesmo usuário em outra aplicação acontece o erro !!!
Ouvi dizer que nas configurações do LoginModule dentro do JBoss 4.2, existe algumas opções utilizadas que força a utilização de uma thread:
<module-option name="multi-threaded">true</module-option>
Mas isso não resolveu !!!
Bom, qualquer dica será bem vinda !!!