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?