aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv/egiz/pdfas
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2015-02-25 09:11:16 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2015-02-25 09:11:16 +0100
commit18a3495d083b8bfd90853c88ffe12c2ff21d0add (patch)
tree40888a1b1da72d901cc29245cc9ee185d7c2e626 /pdf-as-web/src/main/java/at/gv/egiz/pdfas
parentb3b6404c36ba320baa27cc6980511f94395d50e9 (diff)
downloadpdf-as-4-18a3495d083b8bfd90853c88ffe12c2ff21d0add.tar.gz
pdf-as-4-18a3495d083b8bfd90853c88ffe12c2ff21d0add.tar.bz2
pdf-as-4-18a3495d083b8bfd90853c88ffe12c2ff21d0add.zip
Nullpointer exception while statistic event processed fixed
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java86
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java66
2 files changed, 82 insertions, 70 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 4be3d7dd..670756de 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
@@ -49,13 +49,13 @@ import at.gv.egiz.pdfas.web.stats.StatisticEvent.Status;
*/
public class ErrorPage extends HttpServlet {
private static final long serialVersionUID = 1L;
-
+
private static final Logger logger = LoggerFactory
.getLogger(ErrorPage.class);
-
+
private static final String ERROR_STACK = "##ERROR_STACK##";
private static final String ERROR_MESSAGE = "##ERROR_MESSAGE##";
-
+
/**
* @see HttpServlet#HttpServlet()
*/
@@ -90,74 +90,80 @@ public class ErrorPage extends HttpServlet {
return;
} else {
String errorURL = PdfAsHelper.getErrorURL(request, response);
- Throwable e = PdfAsHelper
- .getSessionException(request, response);
-
- StatisticEvent statisticEvent = PdfAsHelper.getStatisticEvent(request, response);
- if(!statisticEvent.isLogged()) {
- statisticEvent.setStatus(Status.ERROR);
- statisticEvent.setException(e);
- if(e instanceof PDFASError) {
- statisticEvent.setErrorCode(((PDFASError)e).getCode());
+ Throwable e = PdfAsHelper.getSessionException(request, response);
+
+ StatisticEvent statisticEvent = PdfAsHelper.getStatisticEvent(
+ request, response);
+ if (statisticEvent != null) {
+ if (!statisticEvent.isLogged()) {
+ statisticEvent.setStatus(Status.ERROR);
+ statisticEvent.setException(e);
+ if (e instanceof PDFASError) {
+ statisticEvent.setErrorCode(((PDFASError) e).getCode());
+ }
+ statisticEvent.setEndNow();
+ statisticEvent.setTimestampNow();
+ StatisticFrontend.getInstance().storeEvent(statisticEvent);
+ statisticEvent.setLogged(true);
}
- statisticEvent.setEndNow();
- statisticEvent.setTimestampNow();
- StatisticFrontend.getInstance().storeEvent(statisticEvent);
- statisticEvent.setLogged(true);
}
-
- String message = PdfAsHelper.getSessionErrMessage(request,
- response);
- if (errorURL != null && WebConfiguration.isProvidePdfURLinWhitelist(errorURL)) {
+
+ String message = PdfAsHelper
+ .getSessionErrMessage(request, response);
+ if (errorURL != null
+ && WebConfiguration.isProvidePdfURLinWhitelist(errorURL)) {
String template = PdfAsHelper.getErrorRedirectTemplateSL();
- template = template.replace("##ERROR_URL##",
- errorURL);
-
+ template = template.replace("##ERROR_URL##", errorURL);
+
URL url = new URL(errorURL);
- String extraParams = UrlParameterExtractor.buildParameterFormString(url);
+ String extraParams = UrlParameterExtractor
+ .buildParameterFormString(url);
template = template.replace("##ADD_PARAMS##", extraParams);
-
+
String target = PdfAsHelper.getInvokeTarget(request, response);
-
- if(target == null) {
+
+ if (target == null) {
target = "_self";
}
-
+
template = template.replace("##TARGET##", target);
-
+
if (e != null && WebConfiguration.isShowErrorDetails()) {
template = template.replace("##CAUSE##",
URLEncoder.encode(e.getMessage(), "UTF-8"));
} else {
- template = template.replace("##CAUSE##",
- "");
+ template = template.replace("##CAUSE##", "");
}
if (message != null) {
- template = template.replace("##ERROR##", URLEncoder.encode(message, "UTF-8"));
+ template = template.replace("##ERROR##",
+ URLEncoder.encode(message, "UTF-8"));
} else {
- template = template.replace("##ERROR##", "Unbekannter Fehler");
+ template = template.replace("##ERROR##",
+ "Unbekannter Fehler");
}
response.setContentType("text/html");
response.getWriter().write(template);
response.getWriter().close();
} else {
- if(errorURL != null) {
+ if (errorURL != null) {
logger.warn(errorURL + " is not allowed by whitelist");
}
-
+
String template = PdfAsHelper.getErrorTemplate();
if (message != null) {
template = template.replace(ERROR_MESSAGE, message);
} else {
- template = template.replace(ERROR_MESSAGE, "Unbekannter Fehler");
+ template = template.replace(ERROR_MESSAGE,
+ "Unbekannter Fehler");
}
-
+
if (e != null && WebConfiguration.isShowErrorDetails()) {
- template = template.replace(ERROR_STACK, HTMLFormater.formatStackTrace(e.getStackTrace()));
+ template = template.replace(ERROR_STACK,
+ HTMLFormater.formatStackTrace(e.getStackTrace()));
} else {
- template = template.replace(ERROR_STACK, "");
+ template = template.replace(ERROR_STACK, "");
}
-
+
response.setContentType("text/html");
response.getWriter().write(template);
response.getWriter().close();
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java
index 64bae47e..4fce6860 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java
@@ -45,14 +45,11 @@ import at.gv.egiz.pdfas.web.stats.StatisticFrontend;
* Servlet implementation class PDFData
*/
public class PDFData extends HttpServlet {
-
+
private static final long serialVersionUID = 1L;
- private static final Logger logger = LoggerFactory
- .getLogger(PDFData.class);
-
-
-
+ private static final Logger logger = LoggerFactory.getLogger(PDFData.class);
+
/**
* @see HttpServlet#HttpServlet()
*/
@@ -82,49 +79,58 @@ public class PDFData extends HttpServlet {
HttpServletResponse response) throws ServletException, IOException {
byte[] signedData = PdfAsHelper.getSignedPdf(request, response);
- StatisticEvent statisticEvent = PdfAsHelper.getStatisticEvent(request, response);
-
+ StatisticEvent statisticEvent = PdfAsHelper.getStatisticEvent(request,
+ response);
+
String plainPDFDigest = PdfAsParameterExtractor.getOrigDigest(request);
-
+
if (signedData != null) {
- if(plainPDFDigest != null) {
- String signatureDataHash = PdfAsHelper.getSignatureDataHash(request);
- if(!plainPDFDigest.equalsIgnoreCase(signatureDataHash)) {
+ if (plainPDFDigest != null) {
+ String signatureDataHash = PdfAsHelper
+ .getSignatureDataHash(request);
+ if (!plainPDFDigest.equalsIgnoreCase(signatureDataHash)) {
logger.warn("Digest Hash mismatch!");
logger.warn("Requested digest: " + plainPDFDigest);
logger.warn("Saved digest: " + signatureDataHash);
-
+
PdfAsHelper.setSessionException(request, response,
"Signature Data digest do not match!", null);
- PdfAsHelper.gotoError(getServletContext(), request, response);
+ PdfAsHelper.gotoError(getServletContext(), request,
+ response);
return;
}
}
- response.setHeader("Content-Disposition", "inline;filename=" + PdfAsHelper.getPDFFileName(request));
+ response.setHeader("Content-Disposition", "inline;filename="
+ + PdfAsHelper.getPDFFileName(request));
String pdfCert = PdfAsHelper.getSignerCertificate(request);
- if(pdfCert != null) {
+ if (pdfCert != null) {
response.setHeader("Signer-Certificate", pdfCert);
}
-
- if(!statisticEvent.isLogged()) {
- statisticEvent.setStatus(Status.OK);
-
- statisticEvent.setEndNow();
- statisticEvent.setTimestampNow();
- StatisticFrontend.getInstance().storeEvent(statisticEvent);
- statisticEvent.setLogged(true);
+
+ if (statisticEvent != null) {
+ if (!statisticEvent.isLogged()) {
+ statisticEvent.setStatus(Status.OK);
+
+ statisticEvent.setEndNow();
+ statisticEvent.setTimestampNow();
+ StatisticFrontend.getInstance().storeEvent(statisticEvent);
+ statisticEvent.setLogged(true);
+ }
}
-
- PDFASVerificationResponse resp = PdfAsHelper.getPDFASVerificationResponse(request);
- if(resp != null) {
- response.setHeader("CertificateCheckCode", String.valueOf(resp.getCertificateCode()));
- response.setHeader("ValueCheckCode", String.valueOf(resp.getValueCode()));
+
+ PDFASVerificationResponse resp = PdfAsHelper
+ .getPDFASVerificationResponse(request);
+ if (resp != null) {
+ response.setHeader("CertificateCheckCode",
+ String.valueOf(resp.getCertificateCode()));
+ response.setHeader("ValueCheckCode",
+ String.valueOf(resp.getValueCode()));
}
response.setContentType("application/pdf");
OutputStream os = response.getOutputStream();
os.write(signedData);
os.close();
-
+
// When data is collected destroy session!
request.getSession().invalidate();
} else {