Filter não pega os dados

Olá pessoal, estou querendo fazer uma aplicação e estou apanhando feio para o Filtro. Eu queria o seguinte, o usuário ter a página administrativa restrita apenas para quem estiver logado. E eu coloquei um filtro na minha aplicação e estou com o seguinte problema, ou o filtro funciona sempre me enviando para o login e não me redireciona para a página administrativa ou ele não funciona (libera a entrada para todos que digitarem a URL).

Eu “debuguei” e percebi que quando vai passar pelo filtro ele não pega os valores dos atributos, ou seja, tenho um atributo do tipo boolean que diz se tem alguém logado ou não, mas quando vai passar pelo o filtro o boolean continua false.

Classe UsuarioDAO:


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UsuarioDao {
	
	public boolean resultado = false;
	public Usuario autenticar(String login, String senha) throws SiteException {
		try {
			Connection con = Conexao.getConnection();
			try {
				String sqlSelect = "select * from tb_usuarios where login_usuario = ? and senha_usuario = ?";
				PreparedStatement pstmt = con.prepareStatement(sqlSelect);
				pstmt.setString(1, login);
				pstmt.setString(2, senha);
				ResultSet rs = pstmt.executeQuery();
				if (rs.next()) {
					Usuario usuario = new Usuario();
					usuario.setLogin(login);
					usuario.setSenha(senha);
					usuario.setNome(rs.getString("NOME_USUARIO"));
					usuario.setLogin(rs.getString("LOGIN_USUARIO"));
					usuario.setSenha(rs.getString("SENHA_USUARIO"));
					usuario.setSituacao(rs.getString("SITUACAO_USUARIO"));
					resultado = true;
					return usuario;

				}else { 
					resultado = false;
					throw new SiteException("Login ou senha incorretos");
					
				}
			}finally {
				con.close();
			}

		} catch (SQLException e) {
			e.printStackTrace();
			throw new SiteException("Erro ao autenticar usuário.");
		}
	}

}

Servlet UsuarioControlador:


import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class UsuarioControlador
 */
@WebServlet("/UsuarioControlador")
public class UsuarioControlador extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public UsuarioControlador() {
		super();
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String acao = request.getParameter("acao");
		UsuarioDao usuarioDao = new UsuarioDao();
		String pagina = "login.jsf";
		String mensagem = "";
		Usuario usuario = (Usuario) request.getSession().getAttribute("usuario");
		try{
			
			if ("autenticar".equals(acao)){
				String login = request.getParameter("login");
				String senha = request.getParameter("senha");
				usuario = usuarioDao.autenticar(login, senha);
				request.getSession().setAttribute("usuario", usuario);
				pagina = "/restrito/admin.jsf";
			}else if ("sair".equals(acao)){
				usuario = null;
				pagina = "index.jsf";
				request.getSession().invalidate();
				usuarioDao.resultado = false;
			}
			
		}catch (SiteException e) {
			request.setAttribute("alerta", e.getMessage());
			pagina = "login.jsf";
		}
		

		request.setAttribute("mensagem", mensagem);
		RequestDispatcher rd = request.getRequestDispatcher(pagina);
		rd.forward(request, response);


	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

Filtro:


import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class FiltroSeguranca
 */
@WebFilter("/FiltroSeguranca")
public class FiltroSeguranca implements Filter {


    public FiltroSeguranca() {
    }

	public void destroy() {
		
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		UsuarioDao usuarioDao = new UsuarioDao();
        
		if (usuarioDao.resultado != false) {
			chain.doFilter(request, response);
			return;
		}else {
			String pagina = "/login.jsf";
			RequestDispatcher rd = request.getRequestDispatcher(pagina);
			rd.forward(request, response);
		}
		
	}

	public void init(FilterConfig fConfig) throws ServletException {
	}

}

Web.xml:

[code]<?xml version="1.0" encoding="UTF-8"?>

Web

Faces Servlet
javax.faces.webapp.FacesServlet
1


primefaces.THEME
ui-lightness


Faces Servlet
*.jsf

<filter>
	<filter-name>FiltroSeguranca</filter-name>
	<filter-class>FiltroSeguranca</filter-class>
</filter>
<filter-mapping>
	<filter-name>FiltroSeguranca</filter-name>
	<url-pattern>/restrito/*</url-pattern>
</filter-mapping>

[/code]

O atributo “resultado” seria para mudar para true toda vez que logar no site e assim que loga ele é alterado, mas quando vai passar o filtro ele está false (mesmo acabando de logar).
Estou a tanto tempo tentando resolver isto que eu já nem sei mais o que estou fazendo, tudo que veio na cabeça para fazer eu já fiz. Sabe quando apanha tanto de alguém que até perde o rumo ? este sou eu neste filtro :frowning:

Grato