Permissões de acesso - Filter

3 respostas
J

Boa tarde…

Alguém poderia me indicar alguma apostila, ou artigo que fale sobre filter. Tenho o seguinte problema, mesmo o usuario nao tendo uma conta se ele mudar na url para index acessa minha pagina.

alguma sugestão?

3 Respostas

yorgan

Você pode fazer assim:
Declare o seu filtro no web.xml:

<filter>
		<filter-name>Filtro Sessao</filter-name>
		<filter-class>seuPacote.FiltroSessao</filter-class> //mude para seu pacote
	</filter>

	<filter-mapping>
		<filter-name>Filtro Sessao</filter-name>
		<url-pattern>/pastaPrivada/*</url-pattern> //mude para sua pasta
	</filter-mapping>

e implemente o filtro:

public class FiltroSessao implements Filter {

    public void init(FilterConfig config) throws ServletException {
    	
    }

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpSession session = ((HttpServletRequest) req).getSession();
        
        String usuario = (String) session.getAttribute("usuario"); //pode usar String ou qualquer objeto
        if (usuario != null) {
        	chain.doFilter(req, res);
        } else {
        	((HttpServletResponse) res).sendRedirect("/login.jsp"); //se não passar na validação do IF ele retorna para a pagina de login
        }
    }

    public void destroy() {
    	
    }
}

Obs. Quando você fizer o login, terá que colocar o atributo que o Filter pega na sessão. Algo +/- assim:

String usuario = "seuUsuario";
session.setAttribute("usuario", usuario); //session é um objeto HttpSession

Era +/- isso que precisava?

[]´s

Daniel

marcoswp3x

Um bom link sobre filters: http://download.oracle.com/docs/cd/B25221_04/web.1013/b14426/filters.htm

J

Obrigada, é isso mesmo! =D

Criado 2 de junho de 2009
Ultima resposta 3 de jun. de 2009
Respostas 3
Participantes 3