PhaseListener - JSF

1 resposta
andersonsv

bom dia amigos,
tenho uma aplicação em jsf para vendas on-line. Estou com dificuldades em criar uma sessão para os usuários. Pois os usuários que são cadastrados e os não cadastrados podem ou não páginas distintas.
Vou tentar descrever o problema:

Ex: usuário visitante: acessa a página home, produtos, empresa, contato.
usuário logado: acessa página home,produtos,empresa,contato,faz pedidos de produtos, etc.
usuário administrador: acessa telas de manutenção.

cada tipo de usuário possui páginas que podem acessar no banco de dados.

problemas encontrados:
o sistema possui tela de login em todas as páginas.
o phaselistener abre em todas as páginas.

como integrar o login do usuário com o phaselistener e gravar na sessão este usuário? sendo que ele abre em todas as páginas?

obrigado! :shock:

1 Resposta

andrepestana

Anderson,

para isso vc pode usar um framework como o jGuard: http://jguard.net ou criar um filtro ou phaselistener seu mesmo que faça o que vc quer.

Vou descrever por cima como vc deverá fazer no caso de criar um phaselistener para a aplicação jsf:

Crie uma ação que busque do banco de dados o login e senha do usuário informados e verifique se ele existe. Esse é o processo de Autenticação.

Caso ele exista, coloque o objeto do usuário na sessão com o Perfil dele. No Perfil vc pode colocar uma lista com as páginas que o perfil tem acesso. O phaselistener deverá permitir as telas de login, erro, etc para qualquer usuário mesmo que não esteja logado. Então não precisa verificar se o usuário tem perfil qdo a página solicitada for uma dessas.

O phaselistener deverá sempre verificar se existe um usuário na sessão. Se não houver vc deverá permitir acesso apenas às páginas do perfil visitante. Se houver um usuário o phaselistener deverá permitir acesso às páginas do perfil desse usuário. Esse é o processo de Autorização.

Crie tb uma ação para o logoff que deverá destruir a sessão.

Veja tb sobre JAAS: http://www.guj.com.br/posts/list/42074.java

Espero que ajude.
Abraço,

Criado 24 de outubro de 2008
Ultima resposta 24 de out. de 2008
Respostas 1
Participantes 2