aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java5
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java28
2 files changed, 30 insertions, 3 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java
index fceeed85..fe436566 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java
@@ -12,6 +12,7 @@ import javax.swing.text.html.HTML;
import org.apache.commons.lang3.StringEscapeUtils;
+import at.gv.egiz.pdfas.web.config.WebConfiguration;
import at.gv.egiz.pdfas.web.helper.HTMLFormater;
import at.gv.egiz.pdfas.web.helper.PdfAsHelper;
@@ -64,7 +65,7 @@ public class ErrorPage extends HttpServlet {
String template = PdfAsHelper.getErrorRedirectTemplateSL();
template = template.replace("##ERROR_URL##",
errorURL);
- if (e != null) {
+ if (e != null && WebConfiguration.isShowErrorDetails()) {
template = template.replace("##CAUSE##",
URLEncoder.encode(e.getMessage(), "UTF-8"));
} else {
@@ -88,7 +89,7 @@ public class ErrorPage extends HttpServlet {
pw.write("<p>" + message + "</p>");
}
- if (e != null) {
+ if (e != null && WebConfiguration.isShowErrorDetails()) {
pw.write("<p>"
+ HTMLFormater.formatStackTrace(e.getStackTrace())
+ "</p>");
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java
index 90c77320..c96225bd 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java
@@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory;
import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner;
import at.gv.egiz.pdfas.sigs.pades.PAdESSigner;
+import at.gv.egiz.pdfas.web.config.WebConfiguration;
import at.gv.egiz.pdfas.web.exception.PdfAsWebException;
import at.gv.egiz.pdfas.web.helper.PdfAsHelper;
import at.gv.egiz.pdfas.web.helper.PdfAsParameterExtractor;
@@ -33,6 +34,8 @@ public class ExternSignServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
+ public static final String PDF_AS_WEB_CONF = "pdf-as-web.conf";
+
private static final String UPLOAD_PDF_DATA = "pdfFile";
private static final String UPLOAD_DIRECTORY = "upload";
private static final int THRESHOLD_SIZE = 1024 * 1024 * 3; // 3MB
@@ -46,6 +49,15 @@ public class ExternSignServlet extends HttpServlet {
* Default constructor.
*/
public ExternSignServlet() {
+ String webconfig = System.getProperty(PDF_AS_WEB_CONF);
+
+ if(webconfig == null) {
+ logger.error("No web configuration provided! Please specify: " + PDF_AS_WEB_CONF);
+ throw new RuntimeException("No web configuration provided! Please specify: " + PDF_AS_WEB_CONF);
+ }
+
+ WebConfiguration.configure(webconfig);
+ PdfAsHelper.init();
}
protected void doGet(HttpServletRequest request,
@@ -142,7 +154,12 @@ public class ExternSignServlet extends HttpServlet {
FileItem item = (FileItem) obj;
if(item.getFieldName().equals(UPLOAD_PDF_DATA)) {
filecontent = item.get();
- logger.debug("Found pdf Data!");
+
+ if(filecontent.length < 10) {
+ filecontent = null;
+ } else {
+ logger.debug("Found pdf Data! Size: " + filecontent.length);
+ }
} else {
request.setAttribute(item.getFieldName(), item.getString());
logger.debug("Setting " + item.getFieldName() + " = " + item.getString());
@@ -161,6 +178,15 @@ public class ExternSignServlet extends HttpServlet {
}
if(filecontent == null) {
+ Object sourceObj = request.getAttribute("source");
+ if(sourceObj != null) {
+ String source = sourceObj.toString();
+ if(source.equals("internal")) {
+ request.setAttribute("FILEERR", true);
+ request.getRequestDispatcher("index.jsp").forward(request, response);
+ return;
+ }
+ }
throw new PdfAsException("No Signature data available");
}