estou com muita duvida, de como usar um filter para poder acessar pagina com usuario logado.
Ao tentar entrar, ele não loga!
OBS: meu codigo estáva funcionando normalmente, como estou usando o FIlter, ele não passa da tela de login…
Segue meu codigo.
meu Filter
package br.com.triadworks.todoList.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import br.com.triadworks.todoList.model.Usuario;
@WebFilter(urlPatterns = { "/mvc" })
public class FilterAutenticacao implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
Usuario usuarioLogado = (Usuario) session.getAttribute("usuarioAutenticado");
if (usuarioLogado == null) {
encaminhaPagina(request, response);
return;
}
chain.doFilter(request, response);
System.out.println("Interceptando...");
}
private void encaminhaPagina(ServletRequest request, ServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("WEB-INF/jsp/view/login.jsp").forward(request, response);
}
}
Tela de Login
package br.com.triadworks.todoList.logica;
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import br.com.triadworks.todoList.dao.UsuarioDAO;
import br.com.triadworks.todoList.infra.ConnectionFactory;
import br.com.triadworks.todoList.model.Usuario;
public class LoginTarefaLogic implements Logica {
@Override
public String executa(HttpServletRequest request, HttpServletResponse response) throws Exception {
Connection connection = ConnectionFactory.getConnection();
String login = request.getParameter("usuario");
String senha = request.getParameter("senha");
Usuario usuario = new Usuario(login, senha);
Usuario usuarioAutenticado = new UsuarioDAO(connection).autenticar(usuario);
if (usuarioAutenticado != null) {
pegaSessao(request,usuarioAutenticado);
return "mvc?logica=ListarTarefaLogic";
} else {
return "erroLogin.jsp";
}
}
private void pegaSessao(HttpServletRequest request, Usuario usuarioAutenticado) {
HttpSession session = request.getSession();
session.setAttribute("usuarioAutenticado", usuarioAutenticado);
session.setMaxInactiveInterval(3000);
}
}