Pessoal, estou com um problema nesta etapa. Minha autenticação não está funcionando. Implementei o código até o momento em que o login deveria redirecionar para a página de Lista de Empresas, ou retornar para o formulário. Mas, no meu caso, qualquer login acaba sendo aceito. Revisei o código mas não consegui encontrar o problema. Seguem os códigos das classes trabalhadas na aula: UnicaEntradaServlet
package br.com.alura.gerenciador.servlet;
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;
import br.com.alura.gerenciador.acao.Acao;
import br.com.alura.gerenciador.acao.AlteraEmpresa;
import br.com.alura.gerenciador.acao.ListaEmpresas;
import br.com.alura.gerenciador.acao.MostraEmpresa;
import br.com.alura.gerenciador.acao.NovaEmpresa;
import br.com.alura.gerenciador.acao.NovaEmpresaForm;
import br.com.alura.gerenciador.acao.RemoveEmpresa;
@WebServlet("/entrada")
public class UnicaEntradaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String paramAcao = request.getParameter("acao");
String nomeDaClasse = "br.com.alura.gerenciador.acao." + paramAcao;
String nome;
try {
Class classe = Class.forName(nomeDaClasse);
Acao acao = (Acao) classe.newInstance();
nome = acao.executa(request, response);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | ServletException
| IOException e) {
throw new ServletException(e);
}
String[] tipoEEndereco = nome.split(":");
if (tipoEEndereco[0].equals("forward")) {
RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/view/" + tipoEEndereco[1]);
rd.forward(request, response);
} else {
response.sendRedirect(tipoEEndereco[1]);
}
// String nome = null;
// if (paramAcao.equals("ListaEmpresas")) {
// ListaEmpresas acao = new ListaEmpresas();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("RemoveEmpresa")) {
// RemoveEmpresa acao = new RemoveEmpresa();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("MostraEmpresa")) {
// MostraEmpresa acao = new MostraEmpresa();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("AlteraEmpresa")) {
// AlteraEmpresa acao = new AlteraEmpresa();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("NovaEmpresa")) {
// NovaEmpresa acao = new NovaEmpresa();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("NovaEmpresaForm")) {
// NovaEmpresaForm acao = new NovaEmpresaForm();
// nome = acao.executa(request, response);
// }
}
}
Login
package br.com.alura.gerenciador.acao;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.alura.gerenciador.modelo.Banco;
import br.com.alura.gerenciador.modelo.Usuario;
public class Login implements Acao {
@Override
public String executa(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String login = request.getParameter("login");
String senha = request.getParameter("senha");
System.out.println("Logando " + login);
Banco banco = new Banco();
Usuario usuario = banco.existeUsuario(login, senha);
if(usuario !=null) {
System.out.println("Usuario existe");
return "redirect:entrada?acao=ListaEmpresas";
} else {
return "redirect:entrada?acao=LoginForm";
}
}
}
Usuario
package br.com.alura.gerenciador.modelo;
public class Usuario {
private String login;
private String senha;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public boolean ehIgual(String login, String senha) {
if (this.login.equals(login)) {
return false;
}
if (!this.senha.equals(senha)) {
return false;
}
return true;
}
}