Sistema de Login JPA
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;
}
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;
}
Thiago César
Curtidas 0