login Controller

Lo usamos para controlar el acceso de usuarios al sistema.

Pasos:

  • Creamos el paquete controller primero.

  • Crear la clase LoginController.java

En este proyecto el usuario se encuentra en una tabla en MySQL llamada usuarios, que se encuentra en el proyecto ejbpilar.

Inyectamos UsuariosFacade, creamos un objeto de la clase Usuarios, y creamos dos métodos doLogin(), logout().

Método doLogin()

Se le asignaran los valores de username y password y se buscara en el facade, para determinar si existe. Como esta definido de Session, mantendrá esta valor mientras el usuario mantenga su sesión activa.

Método logout()

Se utiliza para cerrar la sesión del usuario y liberar todos los recursos.

Debe colocar el nombre del proyecto en la variable url

 String url = "/tallerjsd/faces/index.xhtml?faces-redirect=true";

El atributo loogedIn se usa para controlar si el usuario esta logeado o no en el sistema

   private Boolean loggedIn = false;

Codigo completo

package com.javscaz.tallerjsd.controller;

import com.avbravo.avbravoutils.JsfUtil;
import com.avbravo.ejbtallerjsd.entity.Vehiculos;

import com.javscaz.pilarjsd.ejb.UsuarioFacade;
import com.javscaz.pilarjsd.entity.Ordentrabajo;
import com.javscaz.pilarjsd.entity.Usuario;
import com.javscaz.tallerjsd.util.ResourcesFiles;

import java.io.Serializable;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.http.HttpSession;

/**
 *
 * @author
 *
 *
 */
@Named
@SessionScoped

public class LoginController implements Serializable {
private static final long serialVersionUID = 1L;
    private static final Logger LOG = Logger.getLogger(LoginController.class.getName());

    @Inject
    private UsuarioFacade usuarioFacade;

    private Usuario usuario = new Usuario();
    private String username;
    private String password;
    private Boolean loggedIn = false;
    private String foto;

    @Inject
    ResourcesFiles rf;

    private String id;
    private String key;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Boolean getLoggedIn() {
        return loggedIn;
    }

    public void setLoggedIn(Boolean loggedIn) {
        this.loggedIn = loggedIn;
    }

    @PostConstruct
    public void init() {
        loggedIn = false;

    }

    public String irLogin() {
        return "/faces/login";
    }

    public String doLogin() {
        try {

            usuario = new Usuario();
            if (username == null || password == null) {
                JsfUtil.warningMessage(rf.getMensaje("login.usernamenotvalid"));
                return null;

            }
            usuario.setIdusuario(username);
            Usuario u = usuarioFacade.find(usuario.getIdusuario());
            if (u == null) {
                JsfUtil.warningMessage(rf.getMensaje("login.usernamenotvalid"));
                return null;
            }
            if (!u.getPassword().equals(password)) {
                JsfUtil.sSuccessMessage(rf.getMensaje("login.passwordnotvalid"));
                return "";
            }
            loggedIn = true;
            foto = "img/me.jpg";
            usuario = u;
            JsfUtil.successMessage(rf.getMensaje("login.welcome") + " " + usuario.getCedula().getNombre());
            return "/faces/index.xhtml?faces-redirect=true";
        } catch (Exception e) {
            JsfUtil.errorMessage("doLogin() " + e.getLocalizedMessage());
        }
        return "/faces/index.xhtml?faces-redirect=true";

    }

    public String doLogout() {

        loggedIn = false;
        try {

            HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);

            if (session != null) {
                session.invalidate();
            }
            String url = "/tallerjsd/faces/index.xhtml?faces-redirect=true";

            FacesContext fc = FacesContext.getCurrentInstance();

            ExternalContext ec = fc.getExternalContext();
            ec.redirect(url);
            return "/faces/login.xhtml?faces-redirect=true";

        } catch (Exception e) {

            LOG.warning("doLogout()" + e.getLocalizedMessage());
        }

        return "/faces/login.xhtml?faces-redirect=true";
    }

}

Last updated