jueves, 6 de marzo de 2014

Login con JSF Y JPA

JSF CON JPA CON GLASFISH Y ORACLE

Login Con BD 

A continuacion la codificacion del Formulario Login.
El action="#{usuariobean.doLogin()}" esta llamando al metodo que valida que el password y usuario sean los mismos que mi BD, para ello en su usuarioFacade tienen q aser los siguientes metodos.
 // BuscarUsuario
 public Usuarios BuscarUsuario(String nombreUsuario) {
        javax.persistence.criteria.CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
        javax.persistence.criteria.CriteriaQuery<Usuarios> cq = cb.createQuery(Usuarios.class);
        javax.persistence.criteria.Root<Usuarios> rt = cq.from(Usuarios.class);
        cq.select(rt);
        cq.where(cb.equal(rt.get("usuario"), nombreUsuario));

        Usuarios usuarios = null;

        try {
            usuarios = getEntityManager().createQuery(cq).getSingleResult();
        } catch (NoResultException ex) {
            System.err.println(ex.getMessage());
        }

        return usuarios;
    }

    
//Aca es donde valida
    public boolean login(String nombreUsuario, String password){
        Usuarios usuarios = BuscarUsuario(nombreUsuario);
       
        if(usuarios != null)
            if(usuarios.getPassword().equals(password))
                return Boolean.TRUE;
       
        return Boolean.FALSE;
    }
Ahora en el USUARIOBEAN los siguientes metodos:
 
 Antes declaramos arriba lo siguiente
    private boolean isLoggedIn;
    private Usuarios Usuarios; //Usuarios es la entidad
    private String usuario;
    private int Codigo;
    private String password;
    private String mensaje; 
 Y luego el siguiente metodo que es para desloguear ,para cerrar sesion
 
Y listo ya su login funciona correctamente ;)