Servlet Filter - PhaseListener  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Oi pessoal, tirem-me uma dúvida:

Utilizo Servlet Filter nas minhas aplicações Jsf para fazer o controle de segurança através de acesso a url's.
Li alguma coisa sobre PhaseListener, mas não entendi a fundo suas aplicações e utilidades.

Pergunta?

Qual a função e aplicação do PhaseListener? Tem alguma coisa a ver com Servlet Filter?

Obrigado a todos.

Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
breffo
JavaChild
[Avatar]

Membro desde: 18/07/2005 15:55:53
Mensagens: 102
Localização: Goiânia
Offline

fala Sr tudo tranquilo ??, cara não sei se já conseguiu resposta pra tua pergunta, teu tópico e antigo mais mesmo assim vou dar um palpite ...o tal do PhaseListener é uma interface disponibilizada no JSF que permite monitorar todas as fases do ciclo de vida da aplicação. É como se fosse um Filter no entanto o Filter é invocado a cada requisição e o PhaseListener voce pode indicar o "ID" da fase em que esse objeto vai ser executado ..inclusive indicando se a execução desse objeto deve ser realizada antes (beforePhase) ou depois (afterPhase) da execução da fase em questão ...por exemplo, pra validar a existencia de um usuário autenticado vc pode implementar um PhaseListener que deverá ser chamado na fase PhaseId.RESTORE_VIEW e dentro do método afterPhase vc valida se existe um usuário no SESSION ...eu utilizava Filter, mais o PhaseListener na minha opinião é melhor, boa sorte !!.
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

E aí, blz!!!

Primeiramente obrigado pela resposta.
Bom, ainda estou usando Servlet Filter, acabei por não aprofundando no Phase Listener. Com suas palavras pude compreender um pouco melhor. Se vc tiver um exemplo de autenticação do usuário com Phase Listener e puder me passar, seria ótimo, enquanto isso vou pesquisando.

De toda forma, valeu.

Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
breffo
JavaChild
[Avatar]

Membro desde: 18/07/2005 15:55:53
Mensagens: 102
Localização: Goiânia
Offline

..cara eu escrevi umas besteirinhas a um tempo atras, da uma lida aqui http://ciromacedo.blogspot.com/2008/06/controle-de-acesso-no-jsf.html , acho que da pra implementar com base nisso. Só pra constar, eu construi uma engine de controle de acesso que atua em vários sistemas controlando autenticação e autorização toda baseada em PhaseListener e a idéia central ta descrita nesse artigo ...
...espero ter ajudado !!!
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Vou dar uma conferida, obrigado mais uma vez.


Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
jerson.rodrigues
HelloWorld

Membro desde: 14/02/2008 22:21:09
Mensagens: 14
Localização: São Paulo - SP
Offline

Olá,

Sei que não tem muito a ver com o tópico, mas estava querendo usar o PhaseListener em um exemplo "mais completo", e vi que no livro Dominando Java Server Faces e Facelets Utilizando Spring 2.5, Hibernate e JPA. que está no link a descrição, possui acesso usando essas duas situações (PhaseListener e Servlet Filters).
Alguém já comprou e pode me dizer se está legal a explicação?

PS: Sei que é um livro tutorial e não tenho a intenção de me esfolar em trechos de um livro dedicado apenas. Já tenho o Core JavaServer Faces e quero agora aprender em um projeto completo.

Valeu

Jerson Rodrigues
breffo
JavaChild
[Avatar]

Membro desde: 18/07/2005 15:55:53
Mensagens: 102
Localização: Goiânia
Offline

...amigo se for usar Filter aconselho dar uma olhada no Acegi do Spring (http://www.javaworld.com/javaworld/jw-04-2008/jw-04-acegi-jsf.html) ...quanto as diferenças, acredito que a principal e que o Filter vai agir na fachada da aplicação, enquanto o PhaseListener pode ser configurado pra agir em qualquer uma das Phases do ciclo de vida do JSF, resumidamente acredito ser isso ...eu optei por construir uma solução com PhaseListener pois não encontrei uma maneira elegante de utilizar JSF com PostRedirecMethod, ou seja realizando um REDIRECT após cada requisição visando atualizar a URL, ao invés disso, continuei usando FOWARD e controlando Autenticação e Autorização via PhaseListener que mesmo utilizando FOWARD permite verificar a página alvo de uma requisição ...se optar por Filter convêm dar uma olhada no ACEGI
takeshi.spoow@hotmail.com
Debugger
[Avatar]

Membro desde: 26/10/2010 10:27:09
Mensagens: 54
Localização: São Paulo - SP
Offline

Alguem aqui sabe me dizer como posso sobreescrever o método invalidate da Sessão?

Na minha aplicação, a conexão de dados é dinamica, podendo ser pega de varios lugares diferentes dependendo de onde é acessada, e por isso é aberta a conexão na tela de autenticação e fechada ao encerrar a sessão.

Tem duas formas de encerrar a sessão, uma numa barra de menu e a outra é fechando o navegador. Quando encerro a sessão dentro da página, eu também consigo fechar a conexão (pois ele faz a chamada dos metodos e depois redireciona para a tela principal). O problema é que quando fecha o navegador eu não consegui ainda sobreescrever o invalidate() da HttpSession para que ele feche a minha conexão também! Creio eu que o invalidate é o metodo invocado ao fechar o navegador.

Se alguém quiser conferir minha implementação de PhaseListener segue o exemplo aqui.

Abraços!

"Não existe trabalho ruim, o ruim é ter que trabalhar."

"Ah, o Sol... O lugar mais quente da Terra!" - Homer Simpson

"Não diga à Deus que você tem um grande problema, diga ao problema que você tem um grande Deus."
[MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team