Posso usar filter pra restringir diretórios com JSF?

1 resposta
J

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?

1 Resposta

maurenginaldo

Sim, vc consegue fazer com filter.

Seria +- assim:

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);
		}		
	}
Criado 30 de janeiro de 2008
Ultima resposta 31 de jan. de 2008
Respostas 1
Participantes 2