Posso usar filter pra restringir diretórios com JSF?

me recomendaram pra fazer login numa aplicação jsf usar Filter.

Mas além de logar eu tenho usuario e perfis, com usuarios tendo 1 ou muitos perfis.

Eu consigo fazer isso com filter? alguem tem algum exemplo parecido?

qual seria maneira mais simples caso nao seja filter?

Sim, vc consegue fazer com filter.

Seria ± assim:

[code]public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)throws IOException, ServletException {
this.chain = chain;

//se a página for diferente de login entra nos testes
if(!request.getServletPath().endsWith(“login.jsf”)){
try{
//verifica se tem um usuário na sessão
if(request.getSession().getAttribute(“usuario”) == null){
//se não tiver manda de volta para o login
response.sendRedirect(request.getContextPath()+"/login.jsf");
//faça os teste de restrição baseados na url
}else if(request.getServletPath().endsWith(“paginarestrita.jsf”)){
response.sendRedirect(request.getContextPath()+"/principal.jsf");
//caso não tenha nenhum problema deixa passar
}else{
chain.doFilter(request, response);
}
}catch(Exception e){
response.sendRedirect(request.getContextPath()+"/login.jsf");
}
}else{
chain.doFilter(request, response);
}
}[/code]