LoginController

LoginController

Controla el acceso de los usuarios, debe implementar la interface SecurityInterface de avrbavoutils que controla las sesiones

Definir los atributos

    String username;
    String password;
    String rol = "client";
    String usernameSelected;
    Boolean recoverSession = false;
    Boolean userwasLoged = false;
    Boolean tokenwassend = false;
    String usernameRecover = "";
    String myemail = "@gmail.com";
    String mytoken = "";
    private Boolean loggedIn = false;

Método doLogin()

Valida el usuario y password. Se invoca el método usernameRecoveryOfSession(); de la interfaz que devuelve el nombre del username que esta en una sesion actual en el navegador, si este es vacío se indica el false al atributo recoverSession. Se invoca el dialogo sessionDialog que esta definido en index.xhtml.

  usernameRecover = usernameRecoveryOfSession();
  recoverSession = !usernameRecover.equals("");
  if (recoverSession) {
      RequestContext.getCurrentInstance().execute("PF('sessionDialog').show();");
      return "";
  }

Se verifica si el usuario esta logeado en otra sesión invocando al método isUserLogged() de la Interface

Guardar el usuario en la sesión

Se verifica que sea un usuario valido y se invoca el método saveUserInSession(username,segundos_vida_sesion), para guardar el username en la sesión. Se debe indicar la cantidad de segundos que estará activa la sesión por defecto sera 35 minutos, también el método almacena de manera automática mediante detección el ip, browser y la hora de inicio de sesión.

Al invocar save

isUserValid()

En este método validamos contra una base de datos , colección u otro contenedor los datos del usuario, para verificar si es un usuario valido para accesar el sistema.

doLogout()

Se invoca al cerrar la sesión. El método logout() de SecurityInterfaz termina la sesión y devuelve el llamado al url especificado.

sendToken()

Envia el Token del usuario en la sesion al correo electrónico del usuario

Se debe agregar que se valide si coincide el correo del usuario con el proporcionado.

Se obtiene el token del metodo getTokenOfUsername(username); de SecurityInterface.

Crear un objeto ManagerEmail managerEmail = new ManagerEmail(); y enviar el email mediante

Recuerde que si utiliza una cuenta de gmail para enviar correos debe habilitar en las politicas de seguridad el acceso desde otras aplicaciones.

Solo para Enviar emails desde Gmail.

Codigo:

destroyByUser()

Destruye la sesion del usuario

destroyWithToken()

Se utiliza para destruir una sesión con el Token enviado al correo del usuario. Se debe invocar destroyWithToken(username, mytoken).

Vista:

Codigo

invalidarActual()

Invalida la sesión actual mediante el método invalidateMySession() de SecurityInterface

saludar()

Es un método que envía un mensaje saludando al usuario.

Codigo completo

Last updated

Was this helpful?