Implementación de login automático para agilizar el desarollo.
Es necesario modificar el código del AuthorizationFilter para establecer el usuario y contraseña que se quiere utilizar. Este código debe eliminarse al finalizar el desarrollo.
This commit is contained in:
@@ -20,6 +20,7 @@ import org.omnifaces.util.Exceptions;
|
|||||||
|
|
||||||
import common.UserType;
|
import common.UserType;
|
||||||
import common.Utils;
|
import common.Utils;
|
||||||
|
import managedbean.systemAdmin.LoginMBean;
|
||||||
|
|
||||||
@WebFilter(filterName = "AuthFilter", urlPatterns = { "*.xhtml" })
|
@WebFilter(filterName = "AuthFilter", urlPatterns = { "*.xhtml" })
|
||||||
public class AuthorizationFilter implements Filter {
|
public class AuthorizationFilter implements Filter {
|
||||||
@@ -46,12 +47,31 @@ public class AuthorizationFilter implements Filter {
|
|||||||
HttpServletRequest req = null;
|
HttpServletRequest req = null;
|
||||||
HttpServletResponse resp = null;
|
HttpServletResponse resp = null;
|
||||||
HttpSession ses = null;
|
HttpSession ses = null;
|
||||||
|
|
||||||
|
// Si establecemos esta variable a true se realiza el autologin
|
||||||
|
// TODO: Eliminar esta variable al terminar el desarrollo
|
||||||
|
boolean Debug = false;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
req = (HttpServletRequest) request;
|
req = (HttpServletRequest) request;
|
||||||
String reqURI = req.getRequestURI();
|
String reqURI = req.getRequestURI();
|
||||||
|
|
||||||
resp = (HttpServletResponse) response;
|
resp = (HttpServletResponse) response;
|
||||||
|
|
||||||
|
//TODO: Eliminar este código al terminar el desarrollo.
|
||||||
|
//Realizamos un login automatico (para agilizar el desarrollo.
|
||||||
|
if (Debug == true) {
|
||||||
|
ses = req.getSession(true);
|
||||||
|
|
||||||
|
if (SessionUtils.isLogedIn(ses) == false) {
|
||||||
|
LoginMBean login = new LoginMBean();
|
||||||
|
login.setUsername("PRO#100");
|
||||||
|
login.setPassword("asdf");
|
||||||
|
boolean result = login.autoLogin(ses);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
ses = req.getSession(false);
|
ses = req.getSession(false);
|
||||||
|
|
||||||
// Para recursos publicos permitimos el acceso exista sesión o no.
|
// Para recursos publicos permitimos el acceso exista sesión o no.
|
||||||
|
|||||||
@@ -38,7 +38,13 @@ public class SessionUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void createOrUpdateSession(LoggedUserTO usr) {
|
public static void createOrUpdateSession(LoggedUserTO usr) {
|
||||||
HttpSession ses = getSession(true);
|
createOrUpdateSession(getSession(true), usr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void createOrUpdateSession(HttpSession ses, LoggedUserTO usr) {
|
||||||
|
if (ses == null)
|
||||||
|
return;
|
||||||
|
|
||||||
ses.setAttribute(SessionUtils.SESSION_VAR_USERNAME, usr.getName());
|
ses.setAttribute(SessionUtils.SESSION_VAR_USERNAME, usr.getName());
|
||||||
ses.setAttribute(SessionUtils.SESSION_VAR_USERID, usr.getId());
|
ses.setAttribute(SessionUtils.SESSION_VAR_USERID, usr.getId());
|
||||||
ses.setAttribute(SessionUtils.SESSION_VAR_USERTYPE, usr.getUserType());
|
ses.setAttribute(SessionUtils.SESSION_VAR_USERTYPE, usr.getUserType());
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package managedbean.systemAdmin;
|
|||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
import javax.faces.application.FacesMessage;
|
import javax.faces.application.FacesMessage;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.primefaces.PrimeFaces;
|
import org.primefaces.PrimeFaces;
|
||||||
|
|
||||||
@@ -50,18 +51,36 @@ public class LoginMBean extends ManagedBeanBase {
|
|||||||
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Login correcto", "Bienvenido " + usr.getName());
|
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Login correcto", "Bienvenido " + usr.getName());
|
||||||
viewRedirect = "/home?faces-redirect=true";
|
viewRedirect = "/home?faces-redirect=true";
|
||||||
} else
|
} else
|
||||||
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Loggin Error", "El usuario o la contraseña son incorrectos");
|
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "El usuario o la contraseña son incorrectos");
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
this.addFacesMessage(FacesMessage.SEVERITY_FATAL, "Error fatal", ex.getMessage());
|
this.addFacesMessage(FacesMessage.SEVERITY_FATAL, "Error fatal", ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
} else
|
} else
|
||||||
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Loggin Error", "El usuario o la contraseña son incorrectos");
|
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "El usuario o la contraseña son incorrectos");
|
||||||
|
|
||||||
PrimeFaces.current().ajax().addCallbackParam("loggedIn", loggedIn);
|
PrimeFaces.current().ajax().addCallbackParam("loggedIn", loggedIn);
|
||||||
return viewRedirect;
|
return viewRedirect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Realiza un login semi-automatico. Por ejemplo desde el filtro de autorización.
|
||||||
|
* Se debe utilizar con propositos de depuración, para evitar realizar el login manual.
|
||||||
|
*
|
||||||
|
* @param ses
|
||||||
|
*/
|
||||||
|
public boolean autoLogin(HttpSession ses) {
|
||||||
|
//TODO: Eliminar este metodo al terminar el desarrollo.
|
||||||
|
boolean bResult = false;
|
||||||
|
LoggedUserTO usr = this.getRemoteManagerSystemAdmin().login(username, password);
|
||||||
|
|
||||||
|
if (usr != null) {
|
||||||
|
SessionUtils.createOrUpdateSession(ses, usr);
|
||||||
|
bResult = true;
|
||||||
|
}
|
||||||
|
return bResult;
|
||||||
|
}
|
||||||
|
|
||||||
// logout event, invalidate session
|
// logout event, invalidate session
|
||||||
public String logout() {
|
public String logout() {
|
||||||
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su ssesión. Hasta la vista");
|
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su ssesión. Hasta la vista");
|
||||||
|
|||||||
Reference in New Issue
Block a user