Authentication and authorization of the email and password on the login screen

Asked

Viewed 590 times

0

I have a login screen in which the email and password are already registered in the bank, however I am not able to login with this data that are already recorded in the bank. In the loginBean class I need to not leave static, but according to what is recorded in the bank.

OBS1: ALL THESE CLASSES I DOUBT ARE CORRECT.

OBS2: USER REGISTRATION VIEW IS DOING EL CORRECTLY. Screen with controller is recording in the database normally.

Look at the classes:

Model class:

@Entity
public class Usuario implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue
private Long id;

private String nome;
private String email;
private String senha;

getters e setters

interface:

public interface UsuarioDAO {

public boolean verificarUsuario(Usuario usuario);

User Classohibernate

public class UsuarioDAOHibernate implements UsuarioDAO {

private Session sessao;

@Override
public boolean verificarUsuario(Usuario usuario) {
    Query query = sessao.createQuery("from Usuario u where u.email = :email    and u.senha = :senha");
    query.setParameter("email", usuario.getEmail());
    query.setParameter("senha", usuario.getSenha());

    return query != null;
}

Usuariorn class:

public class UsuarioRN {

private UsuarioDAO usuarioDAO;

public boolean verificar(Usuario usuario) {
    return this.usuarioDAO.verificarUsuario(usuario);
}

Loginbean class:

@ManagedBean
@SessionScoped
public class LoginBean implements Serializable {

private Usuario usuario = new Usuario();

public String login() {
    FacesContext context = FacesContext.getCurrentInstance();

    if ("admin@admin".equals(this.usuario.getEmail()) && "123".equals(this.usuario.getSenha())) {
        this.usuario.setEmail(this.usuario.getEmail());

        return "/admin/ConsultaClientes?faces-redirect=true";
    } else {
        usuario.setEmail(null);

        FacesMessage mensagem = new FacesMessage("E-mail/Senha inválidos.");
        mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
        context.addMessage(null, mensagem);

        return null;
    }       
}
  • Isn’t it just exchange if for "if(usuarioDAO.verifiUsuario(this.usuario))" ? This "this.usuario.setEmail(this.usuario.getEmail();" makes no sense to me.

  • No, because DAO user is an interface and has no instantiation.

  • you must have an attribute like: private User ();

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.