Eu já inseri o usuario no mysql com o login 'admin'. Por algum motivo o usuario não está sendo encontrado. O mais curioso é que o compilador está entrando no
" if(usuarioEncontrado!= null && possuiMesmaSenha(usuarioEncontrado)) "
como se o usuário estivesse sendo encontrado mas dai eu inseri um
" System.out.println("usuario encontrado"+usuario.getLogin()); "
para testes e parece que usuario está com o valor nullo.
Resultado eu tento fazer o login mas o site apenas apaga o valor e continua na mesma pagina do login.
@Named
@RequestScoped
public class LoginBean {
private Usuario usuario = new Usuario();
@Inject
private UsuarioDao dao;
@Inject
UsuarioLogadoBean usuarioLogado;
@Inject
MenuBean menu;
public Usuario getUsuario() {
return usuario;
}
public String efetuaLogin() {
Usuario usuarioEncontrado = this.dao.buscaPeloLogin(usuario.getLogin());
if(usuarioEncontrado!= null && possuiMesmaSenha(usuarioEncontrado)) {
System.out.println("usuario encontrado"+usuario.getLogin());
usuarioLogado.logar(usuarioEncontrado);
return menu.paginaLivros();
}
System.out.println("usuario não encontrado");
criaMensagem("Usuário não encontrado!");
limparForm();
return "";
}
public String efetuaLogout() {
this.usuarioLogado.deslogar();
return this.menu.paginaLogin();
}
private void limparForm() {
this.usuario = new Usuario();
}
private void criaMensagem(String mensagem) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, mensagem, ""));
}
private boolean possuiMesmaSenha(Usuario usuarioEncontrado) {
return usuarioEncontrado.getSenha().equals(usuario.getSenha());
}
}
@Stateless
public class UsuarioDao {
@PersistenceContext
private EntityManager manager;
public Usuario buscaPeloLogin(String login) {
Usuario usuario = this.manager.createQuery("select u from Usuario u where u.login=:pLogin", Usuario.class)
.setParameter("pLogin", login).getSingleResult();
return usuario;
}
}