[RESOLVIDO] Controle de navegação/acesso em páginas jsf

Olá parceiros do conhecimento.

Trabalho em uma empresa que está transferindo o sistema desktop para um sistema web.
Hoje recebi a missão de realizar o controle de navegação de acordo com cada usuário que loga no sistema. Ou seja, usuários possuem diferentes restrições as mais de 100 telas deste sistema.
Qual a melhor maneira de realizar esse controle de navegação por usuário? Já li sobre metodologias como PhaseListener, filtros, JAAS…

*Considere que estou aprendendo do zero pois me sinto perdido para fazer este controle.

Ola amigo

da uma olhadda no Spring security ele consegue gerenciar suas paginas de acordo com a permissão dada ao usuário e muito mais
http://static.springsource.org/spring-security/site/

aqui tem um tutorial introdutorio
http://www.mularien.com/blog/2008/07/07/5-minute-guide-to-spring-security/

Abraços

[quote=DarthCego]Ola amigo

da uma olhadda no Spring security ele consegue gerenciar suas paginas de acordo com a permissão dada ao usuário e muito mais
http://static.springsource.org/spring-security/site/

aqui tem um tutorial introdutorio
http://www.mularien.com/blog/2008/07/07/5-minute-guide-to-spring-security/

Abraços[/quote]

Meu caro DarthCego, muito obrigado. Estarei estudando o material indicado. :slight_smile:
Deixo aberto a mais indicações de materiais e métodos que solucionam o problema proposto.

Olá Senhores,

Bom, finalmente consegui realizar o controle de navegação do sistema da minha empresa.
Bom, ficou assim:

Quando o usuário logar no sistema, ele salva seu usuário na sessão.
Toda tela que ele tentar acessar, antes dessa página ser renderizada, ele verifica se este usuário possui acesso a esta tela. Essa verificação é feita através do banco. No banco de dados eu tenho todas os diretórios das minhas telas gravadas, então no meu managerBean eu utilizo um comando para recuperar a página atual e verifico, através de uma consulta sql, se o usuario da sessão tem acesso a página atual.
Se este usuário tiver acesso, o componente rendered do <h:form> da página atual recebe [color=darkblue]true[/color], senão, [color=darkblue]false[/color].

<h:form id="form" rendered="#{meuBean.verificaAcesso}"> ... ... ... </h:form>

Bom, acho que a lógica ficou bem clara.
Quaisquer dúvidas, fiquem a vontade.

Abraços.

Olá amigo, tudo bom?

Estou precisando fazer algo parecido com o que você fez em um projeto da faculdade… Eu já cheguei a fazer algo bem parecido com o que você fez em um outro projeto utilizando .NET, porém em .NET você tem o conceito de MasterPages, a qual você pode implementar uma verificação como essa (com consulta ao banco), antes do sistema fazer qualquer coisa.

Porém agora estou iniciando ainda em JAVA web, e gostaria de saber se possível, como você fez para que a cada acesso de tela, o sistema verifique se ele tem acesso.
Por meio de algum filtro ou algo assim? Como que teu managedBean faz isso?
Se pudesse me dar uma luz com algum exemplo, ficaria muito grato!

Obrigado desde já

[quote=pcsantana]Olá amigo, tudo bom?

Estou precisando fazer algo parecido com o que você fez em um projeto da faculdade… Eu já cheguei a fazer algo bem parecido com o que você fez em um outro projeto utilizando .NET, porém em .NET você tem o conceito de MasterPages, a qual você pode implementar uma verificação como essa (com consulta ao banco), antes do sistema fazer qualquer coisa.

Porém agora estou iniciando ainda em JAVA web, e gostaria de saber se possível, como você fez para que a cada acesso de tela, o sistema verifique se ele tem acesso.
Por meio de algum filtro ou algo assim? Como que teu managedBean faz isso?
Se pudesse me dar uma luz com algum exemplo, ficaria muito grato!

Obrigado desde já[/quote]

Olá pcsantana,

A questão é que em Java você pode utilizar algo como o PhaseListener.
você irá implementar uma classe a qual terá que realizar um implements da classe PhaseListener. Por consequencia, você terá que implementar três métodos:

void afterPhase(PhaseEvent event); void beforePhase(PhaseEvent event); PhaseId getPhaseId();

Os nomes são bem sugestivos. Para não ter que reinventar a roda, acesse o link:

http://rodrigolazoti.com.br/2008/09/01/filtrando-usuarios-logados-em-jsf-com-phaselistener/

Sugiro ler sobre o ciclo de vida antes de tentar implementar algo. :slight_smile:

Abraço.

Valeu max.analista! :smiley:

vou dar uma olhada… obrigado pela dica!!
qualquer novidade posto aqui

abraçoos!

Olá,
pode me passar seu metodo verificaAcesso?

Obrigado
Erick