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 | 14 |
1 files changed, 12 insertions, 2 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..cd2a8072 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 org.apache.commons.codec.binary.Base64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,7 +79,7 @@ public class PDFData extends HttpServlet { protected void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { byte[] signedData = PdfAsHelper.getSignedPdf(request, response); - + StatisticEvent statisticEvent = PdfAsHelper.getStatisticEvent(request, response); @@ -126,13 +127,22 @@ public class PDFData extends HttpServlet { response.setHeader("ValueCheckCode", String.valueOf(resp.getValueCode())); } + + //if(PdfAsParameterExtractor.isBase64(request)) { + // signedData = Base64.encodeBase64(signedData); + //} + + response.setContentLength(signedData.length); + response.setContentType("application/pdf"); OutputStream os = response.getOutputStream(); os.write(signedData); os.close(); // When data is collected destroy session! - request.getSession().invalidate(); + if(!PdfAsHelper.isSessionAccessCounter(request)) { + request.getSession().invalidate(); + } } else { PdfAsHelper.setSessionException(request, response, "No signed pdf document available.", null); |