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.Utils;
|
||||
import managedbean.systemAdmin.LoginMBean;
|
||||
|
||||
@WebFilter(filterName = "AuthFilter", urlPatterns = { "*.xhtml" })
|
||||
public class AuthorizationFilter implements Filter {
|
||||
@@ -46,12 +47,31 @@ public class AuthorizationFilter implements Filter {
|
||||
HttpServletRequest req = null;
|
||||
HttpServletResponse resp = 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 {
|
||||
|
||||
req = (HttpServletRequest) request;
|
||||
String reqURI = req.getRequestURI();
|
||||
|
||||
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);
|
||||
|
||||
// Para recursos publicos permitimos el acceso exista sesión o no.
|
||||
|
||||
@@ -38,12 +38,18 @@ public class SessionUtils {
|
||||
}
|
||||
|
||||
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_USERID, usr.getId());
|
||||
ses.setAttribute(SessionUtils.SESSION_VAR_USERTYPE, usr.getUserType());
|
||||
ses.setAttribute(SessionUtils.SESSION_VAR_USER, usr);
|
||||
}
|
||||
}
|
||||
|
||||
public static void DestroySession() {
|
||||
HttpSession ses = getSession();
|
||||
|
||||
@@ -3,6 +3,7 @@ package managedbean.systemAdmin;
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.faces.application.FacesMessage;
|
||||
import javax.inject.Named;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.primefaces.PrimeFaces;
|
||||
|
||||
@@ -50,17 +51,35 @@ public class LoginMBean extends ManagedBeanBase {
|
||||
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Login correcto", "Bienvenido " + usr.getName());
|
||||
viewRedirect = "/home?faces-redirect=true";
|
||||
} 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) {
|
||||
this.addFacesMessage(FacesMessage.SEVERITY_FATAL, "Error fatal", ex.getMessage());
|
||||
}
|
||||
|
||||
} 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);
|
||||
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
|
||||
public String logout() {
|
||||
|
||||
Reference in New Issue
Block a user