Files
myhealth/1.sources/MyHealth/src/managedbean/systemAdmin/LoginMBean.java
Marcos Garcia Nuñez de70fa1e8c 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.
2019-12-23 19:44:05 +01:00

93 lines
2.6 KiB
Java

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;
import TO.LoggedUserTO;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
@Named("loginView")
@RequestScoped
public class LoginMBean extends ManagedBeanBase {
private String username;
private String password;
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 String login() {
boolean loggedIn = false;
String viewRedirect = "";
LoggedUserTO usr = null;
if (username != null && password != null && username.equals("") == false && password.equals("") == false) {
try {
usr = this.getRemoteManagerSystemAdmin().login(username, password);
if (usr != null) {
loggedIn = true;
SessionUtils.createOrUpdateSession(usr);
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Login correcto", "Bienvenido " + usr.getName());
viewRedirect = "/home?faces-redirect=true";
} else
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, "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() {
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su ssesión. Hasta la vista");
SessionUtils.DestroySession();
return "/home?faces-redirect=true";
}
}