aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/webapp/jsp/error.jsp
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-web/src/main/webapp/jsp/error.jsp')
-rw-r--r--pdf-as-web/src/main/webapp/jsp/error.jsp109
1 files changed, 109 insertions, 0 deletions
diff --git a/pdf-as-web/src/main/webapp/jsp/error.jsp b/pdf-as-web/src/main/webapp/jsp/error.jsp
new file mode 100644
index 0000000..fc7ff1b
--- /dev/null
+++ b/pdf-as-web/src/main/webapp/jsp/error.jsp
@@ -0,0 +1,109 @@
+<%@ page isErrorPage="true" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.LocalRequestHelper" %>
+<%@ page import="at.gv.egiz.pdfas.web.servlets.SignServlet" %>
+<%@page import="at.gv.egiz.pdfas.api.exceptions.PdfAsException"%>
+<%@ page import="at.gv.egiz.pdfas.web.session.SignSessionInformation" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.VerifySessionInformation" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.SessionAttributes" %>
+<%@ page import="org.apache.commons.httpclient.util.EncodingUtil" %>
+<%@ page import="org.apache.commons.httpclient.NameValuePair" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.SignServletHelper" %>
+<%@ page import="org.apache.commons.lang.StringEscapeUtils" %>
+<%@ page import="java.io.*" %>
+
+<%@ include file="language.jsp" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+
+ <head>
+ <title><fmt:message key="error.title"/></title>
+ <base href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/"/>
+ <meta http-equiv="Cache-Control" content="no-cache"/>
+ <meta http-equiv="Pragma" content="no-cache"/>
+ <meta http-equiv="Expires" content="-1"/>
+ </head>
+
+<%
+ PdfAsException pe;
+ if (exception != null && exception instanceof PdfAsException)
+ {
+ pe = (PdfAsException)exception;
+ SignServlet.prepareDispatchToErrorPage(pe, request);
+ } else {
+ pe = (PdfAsException)request.getAttribute("PresentableException");
+ }
+
+ String error = request.getParameter("error");
+ boolean paramInvok = false;
+ if (error == null) {
+ error = (request.getAttribute("error") == null ? "" : request.getAttribute("error").toString());
+ } else {
+ paramInvok = true;
+ }
+ String cause = request.getParameter("cause");
+ if (cause == null) {
+ cause = (request.getAttribute("cause") == null ? "" : request.getAttribute("cause").toString());
+ } else {
+ paramInvok = true;
+ }
+ boolean rb = Boolean.TRUE.equals((Boolean) request.getAttribute("resourcebundle"));
+ Object sessionInfo = session.getAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION);
+
+ boolean isExternalInvocation = false;
+ if (sessionInfo != null) {
+ if (sessionInfo instanceof SignSessionInformation) {
+ SignSessionInformation si = (SignSessionInformation) sessionInfo;
+ isExternalInvocation = (si != null && si.exappinf != null);
+ if (isExternalInvocation) {
+ String urlParams = EncodingUtil.formUrlEncode(new NameValuePair[] { new NameValuePair("error", error), new NameValuePair("cause", cause) }, "ISO8859_1");
+ if (si.exappinf.invoke_error_url == null) {
+ // prevent circular redirect
+ si.exappinf = null;
+ String redirectUrl = response.encodeRedirectURL(request.getContextPath() + "/jsp/error.jsp" + "?" + urlParams);
+ session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, redirectUrl);
+ } else {
+ String errorUrl = si.exappinf.invoke_error_url + "?" + urlParams;
+ session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, errorUrl);
+ }
+ String redirectHelper = response.encodeRedirectURL(request.getContextPath() + "/jsp/redirect_to_parent.jsp");
+ SignServletHelper.disableBrowserCacheForResponse(response);
+ response.sendRedirect(redirectHelper);
+ }
+ }
+ }
+
+%>
+
+ <body>
+ <h1><fmt:message key="common.title"/></h1>
+ <h2><fmt:message key="error.heading2"/></h2>
+ <div class="pdfasnote">
+ <% if (rb) { %>
+ <fmt:message key="<%= error %>"/>
+ <% } else { out.write(StringEscapeUtils.escapeHtml(error)); } %>
+ </div>
+ <div class="pdfasnote"><fmt:message key="error.cause"/>: <strong>
+ <% if (rb) { %>
+ <fmt:message key="<%= cause %>"/>
+ <% } else { out.write(StringEscapeUtils.escapeHtml(cause)); } %>
+ </strong></div>
+ <% if (!isExternalInvocation && !paramInvok) { %>
+ <div class="pdfasverticalspace"></div>
+ <a href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/"><fmt:message key="common.back"/></a>
+ <% } // end if %>
+ <pre style="display:none">
+ <%
+ if (pe != null) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ pe.printStackTrace(pw);
+ sw.close();
+ pw.close();
+ out.print(StringEscapeUtils.escapeHtml(sw.toString()));
+ }
+ %>
+ </pre>
+ </body>
+
+</html>