Problemas com o AuthFilter

6 respostas
jean.ufam

Bom dia moçada,

Tenho uma aplicaçao e na hora de fazer o login, graças a Deus esta funcionando.
Porem agora eu quero colocar um filtro.
Consegui fazer o codigo mais ele não esta funcionando, ou seja, quando eu acesso o sistema ele leva pra pagina de login.jsf mas se eu digitar na barra main.jsf ele direciona ... ou seja não esta funcionando o filtro .......

alguem pode me ajudar ??????? ja pesquisei e nao encontrei nenhum problema parecido.

eis os codigos.

Meu loginBean
public String doLogin() throws SQLException {
        Usuario us = userBean.isLoginValid(getFormBean().getLogin(), getFormBean().getLogin());
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("userLogged", us);
        return "gotoMain";
    }

    public Usuario getFormBean() {
        return formBean;
    }

    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException, SQLException {
        String username = getFormBean().getLoginUI().getLocalValue().toString();
        String password = value.toString();
        Object valid = userBean.isLoginValid(username, password);
        if (valid == null) {
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_FATAL, "ERRO!","Usuário/Senha inválidos!");
            throw new ValidatorException(msg);
        }
    }
Meu authfilter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
	throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse resp = (HttpServletResponse) response;

        Usuario user = (Usuario) req.getSession().getAttribute("userLogged");
        // The user has been logged !!!!
        if (user != null || req.getRequestURL().toString().endsWith("login.jsf")) {
           chain.doFilter(request, response);
        } else {
          // Ohh the user is not logged !!!!
          resp.sendRedirect(req.getContextPath() + "login.jsf");  
        }
    }
web.xml
<filter>
        <filter-name>AuthFilter</filter-name>
        <filter-class>Filter.AuthFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>AuthFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

6 Respostas

Hebert_Coelho

Como você está testando?

Para mim, parece estar normal.

Pare seu servidor, start, e tente ir ao main direto antes de passar pelo login.

Oq acontece?

jean.ufam

jakefrog:
Como você está testando?

Para mim, parece estar normal.

Pare seu servidor, start, e tente ir ao main direto antes de passar pelo login.

Oq acontece?

poise, ele esta indo pro main … quando na verdade ele nao deveria ir … entende ?

Veja bem ele so deve ir pro main quando eu digito o login e senha. Porem se eu o fizer na barra de endereços,
main ele nao deve ir pro main e ficar no login pra eu autenticar, porem ele esta aindo …

esse é o problema

Hebert_Coelho

Nesse post eu fiz um exemplo de login utilizando filter Autenticação de Usuários (Filter/Servlet)

Eu não utilizei no meu filter dispatcher. Tenta retirá-la e fazer o teste.

jean.ufam

jakefrog:
Nesse post eu fiz um exemplo de login utilizando filter Autenticação de Usuários (Filter/Servlet)

Eu não utilizei no meu filter dispatcher. Tenta retirá-la e fazer o teste.

Ate gostei, mas nao tem algo mais simples que isso ???

Hebert_Coelho

Vc fez o teste? Igual eu falei? Para retirar o dispatcher?

jean.ufam

Funcionou em partes,

tipo assim eu estou usando o primefaces, e ele nao esta pegando o css do prime.

quando eu tento fazer o login ele nao direciona para a pagina do main.

tem que fazer algum tipo de tratamento. ???

ahhh ele tambem continua dando um loop no login !!!

Criado 20 de dezembro de 2011
Ultima resposta 20 de dez. de 2011
Respostas 6
Participantes 2