diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-06-27 16:04:53 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-06-27 16:04:53 +0200 |
commit | 06cf27605579abab9d18615d1fef701b941e06f6 (patch) | |
tree | 0bcbd12c043ea271958fe1f74c3d9630a2dc0300 /pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java | |
parent | e3d88a0a046665e8901e65ef18a1bbf741777885 (diff) | |
download | pdf-as-4-06cf27605579abab9d18615d1fef701b941e06f6.tar.gz pdf-as-4-06cf27605579abab9d18615d1fef701b941e06f6.tar.bz2 pdf-as-4-06cf27605579abab9d18615d1fef701b941e06f6.zip |
added JSON API, added keep signed data flag for configuration
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 | 20 |
1 files changed, 19 insertions, 1 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 4fce6860..cf8486b5 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 @@ -31,6 +31,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import at.gv.egiz.pdfas.web.config.WebConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,6 +86,18 @@ public class PDFData extends HttpServlet { String plainPDFDigest = PdfAsParameterExtractor.getOrigDigest(request); if (signedData != null) { + + if(WebConfiguration.isKeepSignedDocument()) { + if(PdfAsHelper.isSignedDataExpired(request, response)) { + logger.debug("Destroying expired signed data in session : {}", request.getSession().getId()); + request.getSession().invalidate(); + PdfAsHelper.setSessionException(request, response, + "No signed pdf document available.", null); + PdfAsHelper.gotoError(getServletContext(), request, response); + return; + } + } + if (plainPDFDigest != null) { String signatureDataHash = PdfAsHelper .getSignatureDataHash(request); @@ -132,7 +145,12 @@ public class PDFData extends HttpServlet { os.close(); // When data is collected destroy session! - request.getSession().invalidate(); + if(!WebConfiguration.isKeepSignedDocument()) { + logger.debug("Destroying signed data in session : {}", request.getSession().getId()); + request.getSession().invalidate(); + } else { + logger.debug("Keeping signed data in session : {}", request.getSession().getId()); + } } else { PdfAsHelper.setSessionException(request, response, "No signed pdf document available.", null); |