diff options
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java')
-rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java | 66 |
1 files changed, 36 insertions, 30 deletions
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 { |