JAAS, atualizar roles on-line

Como faço para o JAAS atualizar as alterações efetudas no banco instantaneamente?
Problema: Tenho uma área que apenas quem possuir o papel ‘xptoB’ tem acesso, montei um servlet que usa o mesmo JNDI do JAAS para remover/inserir este papel do usuário, mas o JAAS só identifica essa alteração quando é (re)iniciado.

Suponho que o processo passe por algum mecanismo de invalidação. P.ex, no JBoss, é possível definir por quanto tempo uma credencial “vale”. Passado este tempo a credencial armazenada em sessão é revalidada. Note que isto é uma coisa boa: obter a lista de roles é uma operação potencialmente “cara” e fazê-la a cada request pode significar um overhead considerável.

Por outro lado, existe a questão que vc. aponta: o conjunto de roles não é imediatamente afetado por uma mudança no backend utilizado (a base de dados, no seu caso).

Minha sugestão: se sua implementação de JAAS suportar, reduza o tempo de vida a um valor razoável ( 1min deveria ser mais do que suficiente para a maioria das aplicações) e viva com este fato.

Se suas condições de negócio realmente exigirem a atualização “instantânea”, o caminho será criar sua própria implementação de módulos para o JAAS…

Obrigado.

Era a curiosidade mesmo.
Tive a resposta por um amigo(Bjornn).

No arquivo jboss-service.xml temos que alterar o atributo DefaultCacheTimeout para o tempo desejado em segundos, e zero para forçar a
leitura as credenciais a todo momento.

<attribute name="DefaultCacheTimeout">0</attribute>

[]'s e obrigado.