From fd72ba6f0bf8a797fcc5e340fc5a963aef35eaca Mon Sep 17 00:00:00 2001 From: Alexander Marsalek Date: Fri, 11 Jun 2021 15:36:58 +0200 Subject: version 4.1.7-RC-0.0.7, added sbp parameter to ExternSignServlet --- .../pdfas/web/helper/PdfAsParameterExtractor.java | 19 +++++++++++++++++-- .../gv/egiz/pdfas/web/servlets/ExternSignServlet.java | 7 ++----- 2 files changed, 19 insertions(+), 7 deletions(-) (limited to 'pdf-as-web/src/main/java/at/gv') diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java index 5415b233..77d6d217 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java @@ -74,7 +74,7 @@ public class PdfAsParameterExtractor { public static final String PARAM_PREPROCESSOR_PREFIX = "pp:"; public static final String PARAM_OVERWRITE_PREFIX = "ov:"; public static final String PARAM_QRCODE_CONTENT = "qrcontent"; - + public static final String PARAM_DYNAMIC_SIGNATURE_BLOCK_PARAMETER = "sbp"; public static String getConnector(HttpServletRequest request) { String connector = (String)request.getAttribute(PARAM_CONNECTOR); @@ -83,7 +83,22 @@ public class PdfAsParameterExtractor { } return PARAM_CONNECTOR_DEFAULT; } - + + public static Map getDynamicSignatureBlockParameters(HttpServletRequest request) throws Exception { + HashMap signatureBlockParametersMap = new HashMap(); + String sbpString = (String) request.getAttribute(PARAM_DYNAMIC_SIGNATURE_BLOCK_PARAMETER); +// Map map = request.getParameterMap(); + if(sbpString == null || sbpString.length() == 0) + return signatureBlockParametersMap; + for(String s : sbpString.split(";")){ + if(!s.contains("=")) { + throw new Exception("Invalid parameter: "+s); + } + String[] values = s.split("=", 2); + signatureBlockParametersMap.put(values[0], values[1]); + } + return signatureBlockParametersMap; + } public static String getQRCodeContent(HttpServletRequest request) { String qrcodeContent = (String)request.getAttribute(PARAM_QRCODE_CONTENT); return qrcodeContent; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java index 841b8428..674d3351 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java @@ -350,12 +350,10 @@ public class ExternSignServlet extends HttpServlet { PlaceholderWebConfiguration.clear(); } - } catch(Exception e) { logger.error(e.getLocalizedMessage()); } - String filename = PdfAsParameterExtractor.getFilename(request); if(filename != null) { logger.debug("Setting Filename in session: " + filename); @@ -367,9 +365,8 @@ public class ExternSignServlet extends HttpServlet { PdfAsHelper.setSignatureDataHash(request, pdfDataHash); logger.debug("Storing signatures data hash: " + pdfDataHash); - //TODO alex parse?? - Map dynamicSignatureBlockArguments = null; - + Map dynamicSignatureBlockArguments = + PdfAsParameterExtractor.getDynamicSignatureBlockParameters(request); logger.debug("Starting signature creation with: " + connector); -- cgit v1.2.3