Fiz um login utilizando JAAS e JDBC Realm, porém gostaria de saber se tem como eu recuperar as sessãoes de usuários que estão logados.
Minha aplicação precisa de um controle de número máximo de usuários conectados simultaneamente, tem como controlar isso da forma que eu fiz o login?
Existe alguma forma melhor de efetuar o login e ter mais flexíbilidade, para que possa implementar o que necessito, o JAAS me permite essa funcionalidade?
Ninguém nunca fez uma aplicação onde era necessario ter um controle grande sobre as sessões dos usuários?
Saber quantos usuários estão conectados, não deixar que mais de X usuários conectem ao mesmo tempo?
G
garcia-jj
Na camada JAAS você não consegue fazer isso. A responsabilidade do JAAS é apenas atuar como autenticação e autorização.
O que você pode fazer é uma camada pós JAAS que faça esse controle para você, atuando após o login via JAAS. Nos meus sistemas eu faço isso usando uma classe que a partir do Principal do usuário autenticado busca uma série de informações do mesmo.
Ou uma segunda sugestão é você implementar seu próprio módulo do JAAS que cuide desse controle.
F
fvslistas
Uma dúvida rápida, é possível controlar o acesso a atributos (na verdade, a getters e setters) de um bean usando o JAAS.
Melhorando a pergunta, é possível garantir que mesmo que um usuário tenha acesso a determinadas informações dentro de um Bean, ele não consiga acessar outras, no mesmo Bean?
E se fossem Beans diferentes? É possível com o JAAS controlar o acesso a métodos de um Bean?
G
garcia-jj
Se o ciclo de vida do bean for controlado pelo container sim.
Acho que as annotations @PermitAll, @DenyAll, @RolesAllowed, @DeclareRoles e @RunAs, em JAva EE 6 fariam esse trabalho. Ainda não implementei ainda em meu sistema, mas pretendo.