Boa tarde a todos,
Estou montando um projeto acadêmico e estou com uma dúvida e gostaria se possível de contar com a colaboração dos amigos do fórum.
Pois bem, no sistema o usuário vai utilizar o CPF como login e setei no banco a senha inicial como “123456”. Em primeiro lugar teste pra ver se o sistema logava, depois montei as permissões a partir de papéis atribuído ao usuário e tudo funciona bem.
Agora não estou conseguindo fazer com que caso a senha digitada pelo usuário seja igual a “123456” ele direcione para a jsp que montei para a troca de senha. Tentei fazer as comparações do campo de senha mas deu erro. Alguém tem alguma sugestão? Segue o código do Servlet do login.
Abraços
package br.com.odontbasic.controle;
import java.io.IOException;
import java.util.Arrays;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.odontbasic.exception.EmailException;
import br.com.odontbasic.mail.MailSender;
import br.com.odontbasic.mail.TipoEmail;
import br.com.odontbasic.modelo.Pessoa;
import br.com.odontbasic.modelo.dao.DentistaDao;
import br.com.odontbasic.modelo.dao.InstrumentistaDao;
import br.com.odontbasic.modelo.dao.PacienteDao;
import br.com.odontbasic.modelo.dao.PessoaDao;
import br.com.odontbasic.modelo.dao.SecretariaDao;
import br.com.odontbasic.modelo.enums.PapelEnum;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = null;
String acao = request.getParameter("acao") + "";
if(acao.equalsIgnoreCase("LOGOUT")) {
dispatcher = logout(request);
} else {
acaoInvalida(request, response);
return;
}
dispatcher.forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = null;
String acao = request.getParameter("acao") + "";
if(acao.equalsIgnoreCase("LOGIN")) {
dispatcher = login(request);
} else if(acao.equals("ENVIO_SENHA")) {
dispatcher = enviarSenha(request, response);
} else {
acaoInvalida(request, response);
return;
}
dispatcher.forward(request, response);
}
private RequestDispatcher login(HttpServletRequest request) {
PessoaDao pessoaDao = new PessoaDao();
Pessoa pessoa = pessoaDao.obterPorCpfESenha(request.getParameter("cpf"), request.getParameter("senha"));
if(pessoa != null) {
if(pessoa.isAdmin()) {
//Se for admin, usuario passa a ter todos os papeis
pessoa.getPapeis().addAll(Arrays.asList(PapelEnum.values()));
} else {
//Verificando se pessoa é um paciente e atribui o papel correspondente
PacienteDao pacienteDao = new PacienteDao();
Pessoa paciente = pacienteDao.obterPorIdPessoa(pessoa.getIdPessoa());
if(paciente != null) {
pessoa.getPapeis().add(PapelEnum.PACIENTE);
}
//Verificando se pessoa é uma instrumentista e atribui o papel correspondente
InstrumentistaDao instrumentistaDao = new InstrumentistaDao();
Pessoa instrumentista = instrumentistaDao.obterPorIdPessoa(pessoa.getIdPessoa());
if(instrumentista!= null){
pessoa.getPapeis().add(PapelEnum.INSTRUMENTISTA);
}
//Verificando se pessoa é um dentista e atribui o papel correspondente
DentistaDao dentistaDao = new DentistaDao();
Pessoa dentista = dentistaDao.obterPorIdPessoa(pessoa.getIdPessoa());
if(dentista != null) {
pessoa.getPapeis().add(PapelEnum.DENTISTA);
pessoa.getPapeis().add(PapelEnum.SECRETARIA);
}
//Verificando se pessoa é uma secretaria e atribui o papel correspondente
SecretariaDao secretariaDao = new SecretariaDao();
Pessoa secretaria = secretariaDao.obterPorIdPessoa(pessoa.getIdPessoa());
if(secretaria != null) {
pessoa.getPapeis().add(PapelEnum.DENTISTA);
pessoa.getPapeis().add(PapelEnum.SECRETARIA);
}
}
if(!pessoa.getPapeis().isEmpty()) {
request.getSession().setAttribute("usuarioLogado", pessoa);
return request.getRequestDispatcher("/dinamico/index.jsp");
}
}
request.setAttribute("mensagem", "Usuario desativado ou Dados Invalidos.");
return request.getRequestDispatcher("/login.jsp");
}
private RequestDispatcher enviarSenha(HttpServletRequest request, HttpServletResponse response) {
try {
String cpf = request.getParameter("cpf");
PessoaDao pessoaDao = new PessoaDao();
Pessoa pessoa = pessoaDao.obterPorCpf(cpf);
MailSender sender = new MailSender();
sender.enviar(TipoEmail.ENVIO_SENHA, pessoa.getEmail(), new Object[] { pessoa.getSenha() });
request.setAttribute("mensagem", "A senha foi enviada para o email " + pessoa.getEmail() + ".");
return request.getRequestDispatcher("/login.jsp");
} catch (EmailException e) {
e.printStackTrace();
return request.getRequestDispatcher("/login.jsp?erro=3");
}
}
private RequestDispatcher logout(HttpServletRequest request) {
request.getSession().invalidate();
return request.getRequestDispatcher("/login.jsp");
}
private void acaoInvalida(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.sendRedirect(request.getContextPath() + "/login.jsp?erro=2");
return;
}
}