diff options
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas')
-rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java | 19 | ||||
-rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java | 7 |
2 files changed, 19 insertions, 7 deletions
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<String,String> getDynamicSignatureBlockParameters(HttpServletRequest request) throws Exception { + HashMap<String, String> signatureBlockParametersMap = new HashMap<String, String>(); + String sbpString = (String) request.getAttribute(PARAM_DYNAMIC_SIGNATURE_BLOCK_PARAMETER); +// Map<String, String[]> 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<String, String> dynamicSignatureBlockArguments = null; - + Map<String, String> dynamicSignatureBlockArguments = + PdfAsParameterExtractor.getDynamicSignatureBlockParameters(request); logger.debug("Starting signature creation with: " + connector); |