Implementación de mensajes de error que se muestran en la pagina de
error. El mensaje de error se envía a través de la sesión.
This commit is contained in:
@@ -10,22 +10,29 @@
|
||||
<div class="ui-g ui-fluid">
|
||||
<div class="ui-g-2 ui-md-2" />
|
||||
<div class="ui-g-8 ui-md-8">
|
||||
<p:panel id="ErrorPanel" header="Se ha producido un error inesperado">
|
||||
<p:panel id="ErrorPanel">
|
||||
<f:facet name="header">
|
||||
<p:outputLabel value="Se ha producido un error de autorización" rendered="#{param.type == 'auth'}" />
|
||||
<p:outputLabel value="Se ha producido un error desconocido" rendered="#{param.type == null}" />
|
||||
</f:facet>
|
||||
<div class="ui-g ui-fluid">
|
||||
<div class="ui-g-12">La acción que estaba realizando a causado un error inesperado en el sistema. A continuación podrá ver un descripción detallada del error para que
|
||||
pueda comunicarlo al equipo de soporte.</div>
|
||||
|
||||
<div class="ui-g-12" style="font-weight: bold;">Descripción del error</div>
|
||||
<div class="ui-g-12" style="font-weight: bold;">
|
||||
<!-- <p:outputLabel value="No está autorizado a acceder a la página solicitada. Por favor, utilice el menú principal de la aplicación." rendered="#{param.type == 'auth'}" /> -->
|
||||
<!-- <p:outputLabel value="Se ha producido un error desconocido. Si vuelve a repetirse, por favor, contacte con el equipo de soporte." rendered="#{param.type == null}" /> -->
|
||||
</div>
|
||||
|
||||
<div class="ui-g-12">
|
||||
<h:messages fatalClass="ErrorMessage" showDetail="true" showSummary="true" globalOnly="true" />
|
||||
<p:messages id="errorMessage" showDetail="true" closable="false" autoupdate="true" showSummary="true" showIcon="true" />
|
||||
</div>
|
||||
|
||||
<div class="ui-g-5" />
|
||||
<div class="ui-g-2">
|
||||
<div class="ui-g-4" />
|
||||
<div class="ui-g-4">
|
||||
<p:button value="Ir a la página principal" outcome="home" icon="pi pi-home" />
|
||||
</div>
|
||||
<div class="ui-g-5" />
|
||||
<div class="ui-g-4" />
|
||||
</div>
|
||||
</p:panel>
|
||||
</div>
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.ArrayList;
|
||||
import java.util.Dictionary;
|
||||
import java.util.List;
|
||||
|
||||
import javax.faces.application.FacesMessage;
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
@@ -129,7 +130,8 @@ public class AuthorizationFilter implements Filter {
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
} else {
|
||||
resp.sendRedirect(req.getContextPath() + "/error.xhtml");
|
||||
SessionUtils.addMessage(ses, FacesMessage.SEVERITY_ERROR, "No está autorizado a acceder a la página solicitada. Por favor, utilice el menú principal de la aplicación.", String.format("Se ha producido una expción de autorización, su usuario no está autorizado a acceder a la página: (%s).", reqURI));
|
||||
resp.sendRedirect(req.getContextPath() + "/error.xhtml?type=auth");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,15 @@ public class ManagedBeanBase {
|
||||
}
|
||||
|
||||
protected void addFacesMessage(FacesContext context, FacesMessage.Severity severity, String summary, String detail) {
|
||||
context.addMessage(null, new FacesMessage(severity, summary, detail));
|
||||
this.addFacesMessage(context, new FacesMessage(severity, summary, detail));
|
||||
}
|
||||
|
||||
protected void addFacesMessage(FacesMessage facesMsg) {
|
||||
this.addFacesMessage(FacesContext.getCurrentInstance(), facesMsg);
|
||||
}
|
||||
|
||||
protected void addFacesMessage(FacesContext context, FacesMessage facesMsg) {
|
||||
context.addMessage(null, facesMsg);
|
||||
}
|
||||
|
||||
protected void manageException(Exception ex) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
package managedbean.common;
|
||||
|
||||
import javax.faces.application.FacesMessage;
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -14,6 +15,7 @@ public class SessionUtils {
|
||||
public static final String SESSION_VAR_USERID = "userId";
|
||||
public static final String SESSION_VAR_USERTYPE = "userType";
|
||||
public static final String SESSION_VAR_USER = "loggedOnUser";
|
||||
public static final String SESSION_VAR_MESSAGE = "facesMessage";
|
||||
|
||||
public static HttpSession getSession() {
|
||||
FacesContext ctx = FacesContext.getCurrentInstance();
|
||||
@@ -47,7 +49,7 @@ public class SessionUtils {
|
||||
public static boolean isLogedIn() {
|
||||
return isLogedIn(getSession());
|
||||
}
|
||||
|
||||
|
||||
public static boolean isLogedIn(HttpSession session) {
|
||||
if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USERID) != null)
|
||||
return true;
|
||||
@@ -73,15 +75,15 @@ public class SessionUtils {
|
||||
|
||||
public static UserType getUserType() {
|
||||
return getUserType(getSession());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static UserType getUserType(HttpSession session) {
|
||||
if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USERTYPE) != null)
|
||||
return UserType.class.cast(session.getAttribute(SessionUtils.SESSION_VAR_USERTYPE));
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static LoggedUserTO getloggedOnUser() {
|
||||
HttpSession session = getSession();
|
||||
if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USER) != null)
|
||||
@@ -89,4 +91,24 @@ public class SessionUtils {
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static FacesMessage getMessage() {
|
||||
HttpSession session = getSession();
|
||||
if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_MESSAGE) != null) {
|
||||
FacesMessage msg = FacesMessage.class.cast(session.getAttribute(SessionUtils.SESSION_VAR_MESSAGE));
|
||||
session.removeAttribute(SessionUtils.SESSION_VAR_MESSAGE);
|
||||
return msg;
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void addMessage(FacesMessage.Severity severity, String summary, String detail) {
|
||||
addMessage(getSession(), severity, summary, detail);
|
||||
}
|
||||
|
||||
public static void addMessage(HttpSession session, FacesMessage.Severity severity, String summary, String detail) {
|
||||
if (session != null)
|
||||
session.setAttribute(SessionUtils.SESSION_VAR_MESSAGE, new FacesMessage(severity, summary, detail));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.List;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.faces.application.FacesMessage;
|
||||
import javax.inject.Named;
|
||||
|
||||
import common.UserType;
|
||||
@@ -16,7 +17,7 @@ import common.UserType;
|
||||
*/
|
||||
@Named("home")
|
||||
@RequestScoped
|
||||
public class homeMBean implements Serializable {
|
||||
public class homeMBean extends ManagedBeanBase implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private boolean isLogedIn;
|
||||
@@ -31,6 +32,12 @@ public class homeMBean implements Serializable {
|
||||
userName = SessionUtils.getUserName();
|
||||
userId = SessionUtils.getUserId();
|
||||
userType = SessionUtils.getUserType();
|
||||
|
||||
FacesMessage message = SessionUtils.getMessage();
|
||||
|
||||
if (message != null) {
|
||||
this.addFacesMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Theme> getThemes() {
|
||||
|
||||
Reference in New Issue
Block a user