aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv/egiz/pdfas
diff options
context:
space:
mode:
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.java19
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java7
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);