diff options
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java')
-rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java | 80 |
1 files changed, 46 insertions, 34 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java index 35b5a7ce..9900dda4 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java @@ -161,7 +161,9 @@ public class PdfAsHelper { reloadConfig(); } - public static void init() { + public static void init() { + JsonSecurityUtils.getInstance(); + log.info("PDF-AS Helper initialized"); } @@ -536,7 +538,9 @@ public class PdfAsHelper { // set Signature Position signParameter.setSignaturePosition(documentToSign.getPosition()); - + signParameter.setPlaceHolderId(documentToSign.getPlaceHolderId()); + signParameter.setPlaceHolderSearchEnabled(documentToSign.isPlaceholderSearchEnabled()); + // Set Preprocessor if (coreParams.getPreprocessor() != null) { signParameter.setPreprocessorArguments(coreParams.getPreprocessor()); @@ -549,8 +553,7 @@ public class PdfAsHelper { PDFASVerificationResponse verResponse = new PDFASVerificationResponse(); - verResponse.setSignerCertificate(signResult.getSignerCertificate() - .getEncoded()); + verResponse.setSignerCertificate(signResult.getSignerCertificate().getEncoded()); SignedDocument signPdfDoc = SignedDocument.builder() @@ -660,7 +663,8 @@ public class PdfAsHelper { // set Signature Position signParameter.setSignaturePosition(pdfToSign.getPosition()); - + signParameter.setPlaceHolderId(pdfToSign.getPlaceHolderId()); + signParameter.setPlaceHolderSearchEnabled(pdfToSign.isPlaceholderSearchEnabled()); signParameter.setDynamicSignatureBlockArguments(coreSignParams.getSignatureBlockParameters()); return pdfAs.startSign(signParameter); @@ -787,12 +791,6 @@ public class PdfAsHelper { PdfAsHelper.process(request, response, context); } - public static void logAccess(HttpServletRequest request) { - HttpSession session = request.getSession(); - log.info("Access to " + request.getServletPath() + " in Session: " - + session.getId()); - } - public static JSONStartResponse startJsonProcess(HttpServletRequest request, HttpServletResponse response, ServletContext context) throws Exception { @@ -907,6 +905,10 @@ public class PdfAsHelper { JsonObject sl20Req = null; String reqId = UUID.randomUUID().toString(); if (WebConfiguration.isSL20SigningEnabled()) { + if (joseTools == null) { + throw new PdfAsException("error.config.sl20.01"); + } + String signedCertCommand = SL20JSONBuilderUtils.createSignedCommand( SL20Constants.SL20_COMMAND_IDENTIFIER_GETCERTIFICATE, getCertParams, joseTools); sl20Req = SL20JSONBuilderUtils.createGenericRequest(reqId, null, null, signedCertCommand); @@ -1361,29 +1363,35 @@ public class PdfAsHelper { private static String generateURL(HttpServletRequest request, HttpServletResponse response, String Servlet) { - HttpSession session = request.getSession(); - String publicURL = WebConfiguration.getPublicURL(); - String dataURL = null; - if (publicURL != null) { - dataURL = publicURL + Servlet + ";jsessionid=" + session.getId(); - } else { - if ((request.getScheme().equals("http") && request.getServerPort() == 80) - || (request.getScheme().equals("https") && request - .getServerPort() == 443)) { - dataURL = request.getScheme() + "://" + request.getServerName() - + request.getContextPath() + Servlet + ";jsessionid=" - + session.getId(); - } else { - dataURL = request.getScheme() + "://" + request.getServerName() - + ":" + request.getServerPort() - + request.getContextPath() + Servlet + ";jsessionid=" - + session.getId(); - } - } - log.debug("Generated URL: " + dataURL); - return dataURL; + return generateURL(request, response, Servlet, WebConfiguration.getPublicURL()); + } + private static String generateURL(HttpServletRequest request, + HttpServletResponse response, String Servlet, String publicURL) { + HttpSession session = request.getSession(); + String dataURL = null; + if (publicURL != null) { + dataURL = publicURL + Servlet + ";jsessionid=" + session.getId(); + } else { + if ((request.getScheme().equals("http") && request.getServerPort() == 80) + || (request.getScheme().equals("https") && request + .getServerPort() == 443)) { + dataURL = request.getScheme() + "://" + request.getServerName() + + request.getContextPath() + Servlet + ";jsessionid=" + + session.getId(); + } else { + dataURL = request.getScheme() + "://" + request.getServerName() + + ":" + request.getServerPort() + + request.getContextPath() + Servlet + ";jsessionid=" + + session.getId(); + } + } + log.debug("Generated URL: " + dataURL); + return dataURL; + } + + public static void regenerateSession(HttpServletRequest request) { request.getSession(false).invalidate(); request.getSession(true); @@ -1391,12 +1399,16 @@ public class PdfAsHelper { public static String generateDataURLSL20(HttpServletRequest request, HttpServletResponse response) { - return generateURL(request, response, PDF_SL20_DATAURL_PAGE); + return generateURL(request, response, PDF_SL20_DATAURL_PAGE, + WebConfiguration.getPublicDataURL() != null + ? WebConfiguration.getPublicDataURL() : WebConfiguration.getPublicURL()); } public static String generateDataURL(HttpServletRequest request, HttpServletResponse response) { - return generateURL(request, response, PDF_DATAURL_PAGE); + return generateURL(request, response, PDF_DATAURL_PAGE, + WebConfiguration.getPublicDataURL() != null + ? WebConfiguration.getPublicDataURL() : WebConfiguration.getPublicURL()); } public static String generateProvideURL(HttpServletRequest request, |