Jsf com Servlet filter. correto?

Pessoal to fazendo um modulo pra logar e autorizar pessoas na aplicação…esquema de urls e tals…
pessoal aqui me auxiliou legal e recomendou servlet filter…parece ser tranquilo fazer…

mas pelo que li até hoje, quando se usa Jsf a intenção é não construir servlet…

se eu fizer um servlet filter pra tratar minhas autorizações e login, eu teria q mandar todas as páginas passar nesse servlet pra tratar e o Jsf tem um servlet central que trata tudo, no caso como fica isso :?: o servlet do jsf não seria mais o responsavel pro tratar tudo…isso altera o ciclo do jsf, continua normal :?:

Valeu a todos

dá uma olhada no acegi-jsf

ele faz o que vc precisa e mais um pouco.

[s]
George

cara ja fiz isso num projeto aqui e funcionou sem problemas…

eu filtrava as urls q necessitava ‘estar logado’, entregava para o jsf fazer o trabalho conveniente ao ligin !!

[quote=georgesq]dá uma olhada no acegi-jsf

ele faz o que vc precisa e mais um pouco.

[s]
George[/quote]

eu olhei o acegi-jsf superficialmente…mas vi num fórum dizendo que ele é so pra restringir dentro do proprio codigo jsf através de tags, será q eu conseguiria restringir perfis e diretorios…dependendo do perfil acessa determinado diretorio…

O Acegi faz coisa pacas.
Usar um ServletFilter na maioria das ocasiões funciona bem e é super simples e painless de implementar.

Nossa, tem coisa pakas no Acegi, vejam:

http://osdir.com/ml/java.springframework.acegisecurity.devel/2006-03/msg00001.html

http://blogs.steeplesoft.com/using-acegi-security-with-jsf/

http://blog.rainer.eschen.name/2006/11/14/howto-secure-jsf-via-springacegi/

Acredito que estes links esclareçam mais.

Abraços

aproveitando o topico do amigo,

com um caso parecido mas com algumas diferenças…
geralmente ocorre nas Intranet ter vários sistemas, onde 1 usuário pode ter acesso a N sistemas, então não é viável ter N cadastro de usuário/senha desse Usuario para cada sistema…
então pensamos em fazer um sistema especifico para autenticações/acessos…
com alguns tratamentos do tipo usuario ter acess a sistema X,Y,Z e modulos E,F,G…
mas para teria que fazer com que a cada acesso que determinado sistema fosse ter por um usuario ele chamasse o sistema de autenticacao para realizar tal tarefa…

a principio pensei no ServletFilter também, pra esse meu caso, ele não seria ideal ? ( pensando no todo existe alguma solução melhor ? )

t+

[quote=sudeval]aproveitando o topico do amigo,

com um caso parecido mas com algumas diferenças…
geralmente ocorre nas Intranet ter vários sistemas, onde 1 usuário pode ter acesso a N sistemas, então não é viável ter N cadastro de usuário/senha desse Usuario para cada sistema…
então pensamos em fazer um sistema especifico para autenticações/acessos…
com alguns tratamentos do tipo usuario ter acess a sistema X,Y,Z e modulos E,F,G…
mas para teria que fazer com que a cada acesso que determinado sistema fosse ter por um usuario ele chamasse o sistema de autenticacao para realizar tal tarefa…

a principio pensei no ServletFilter também, pra esse meu caso, ele não seria ideal ? ( pensando no todo existe alguma solução melhor ? )

t+[/quote]

O Acegi se encaixa melhor no seu caso. Se fizer com ServletFilter não quer dizer que não consiga, pois pode criar várias sessões com N situações, porém, pra que refazer o que já existe?
Aliás, agora nem se chama mais acegi, é Spring Security:

http://static.springframework.org/spring-security/site/reference/html/springsecurity.html

Eu acho essa uma das partes mais chatas do Spring, porém, a que se dominando, fica mais fácil de gerenciar perfis.
Bons códigos

Com JSF é preferível usar o PhaseListener ao invés do Filter, porque pode haver casos em que no filter vc queira fazer alguma alteração no viewRoot, por exemplo, ou em outro objeto que esteja dentro do facesContext, fazer isso a partir de um Filter não é nada trivial. Tô pra fazer isso faz tempo.

Eu preferiria isso com jaas, porque integrar muitos frameworks também, pelo menos pra mim, dá um certo sofrimento pra acertar os jars e, pra mim, só vale a pena quando vamos explorar bem o framawork. Assim, se for só pra login, ver se o usuário está autenticado ou não e coisas mais seimples, PhaseListener só, ou com jaas.

Dá uma olhadinha, pode ser útil.
http://www.jsfcentral.com/listings/A92000?link