Sistema de Login JPA

25/09/2018

2

Olá amigos, estou estudando java. neste primeiro momento estou tentando fazer um sistema de login criptografado com MD5, só que não estou conseguindo, acho que por ser novo e não ter experiência. Estou utilizando uma maneira que achei interessante, não sei se realmente é, rsrsr. Acho que o problema está na tela de login.
Abaixo segue projeto:

Dao

public Usuario autentic(Usuario usuario) {
String salt = verific(usuario.getLogin());
EntityManager em = ConnectionFactory.getEntityManager();
String hql = "from Usuario u where u.login=:login and u.senha=:senha";
Query q = em.createQuery(hql).setParameter("login", usuario.getLogin()).setParameter("senha", CriptografiaMD5.encriptografar(usuario.getSenha() + salt));
return (Usuario) q.getSingleResult();
}

public String verific(String login) throws HibernateException{
EntityManager em = ConnectionFactory.getEntityManager();
String hql = "from Usuario u where u.login=:login";
Query q = em.createQuery(hql).setParameter("login", login);
Usuario usuarioverificado = (Usuario) q.getSingleResult();
String salt = usuarioverificado.getSalt();
return salt;
}

Tela Login

private Usuario autenticarUsuario() {
TelaPrincipal principal = new TelaPrincipal();
Usuario objUser = new Usuario();
UsuarioDAO dao = new UsuarioDAO();

String login = jtUsuario.getText().trim();
String senha = new String(jPassSenha.getPassword());
try {
objUser.setLogin(login);
objUser.setSenha(senha);
if (objUser.equals(login)) {
JOptionPane.showMessageDialog(null, "usuario errado!", "Erro", JOptionPane.INFORMATION_MESSAGE);
if (dao.autentic(objUser) != null) {
principal.setVisible(true);
setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "Usuário não cadastrado!", "Erro", JOptionPane.INFORMATION_MESSAGE);
}
}
} catch (HeadlessException e) {
System.err.println("erro" + e);
}
return null;
}
Responder