From e6c60914f63c7ad0381ac008542b4ef9c1938383 Mon Sep 17 00:00:00 2001 From: Alexander Marsalek Date: Mon, 31 May 2021 19:15:56 +0200 Subject: tmp --- .../at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java index 6345a714..a6a7ced3 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java @@ -916,7 +916,7 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { if(placeholders!=null) { for(int i = 0; i < placeholders.size(); ++i) { //take smallest id - if(!existingPlaceholders.contains(placeholders.get(i).getPlaceholderName())) { + if(!existingPlaceholders.contains(placeholders.get(i).getPlaceholderName())) { SignaturePlaceholderData spd = placeholders.get(i); if (spd.getId() != null) { if(result == null) { @@ -924,6 +924,7 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { } else { String currentID = result.getId(); String testID = spd.getId(); + //TODO why compare as string? if(testID.compareToIgnoreCase(currentID) < 0) { result = spd; } -- cgit v1.2.3 From 1c6646e49761792b63028aea06a2e3a318361955 Mon Sep 17 00:00:00 2001 From: Alexander Marsalek Date: Tue, 1 Jun 2021 11:06:22 +0200 Subject: nullpointer fix pdf-as-web --- .../src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java index 5c3e548f..1929f95e 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java @@ -24,6 +24,7 @@ package at.gv.egiz.pdfas.lib.impl; import java.util.Collections; +import java.util.HashMap; import java.util.Map; import javax.activation.DataSource; @@ -84,6 +85,8 @@ protected Configuration configuration; @Override public void setDynamicSignatureBlockArguments(Map map) throws PdfAsException { + if(map == null) + map = new HashMap(); Map tmpMap = Collections.unmodifiableMap(map); String keyRegex = configuration.getValue(IConfigurationConstants.SIG_BLOCK_PARAMETER_KEY_REGEX); String valueRegex = configuration.getValue(IConfigurationConstants.SIG_BLOCK_PARAMETER_VALUE_REGEX); -- cgit v1.2.3 From fef273a399d7ce891262d217cc04e4aea032c919 Mon Sep 17 00:00:00 2001 From: Alexander Marsalek Date: Tue, 1 Jun 2021 11:18:24 +0200 Subject: try to parse placeholder id as int and sort as int with fallback to string --- .../lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java index a6a7ced3..fd0472ac 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java @@ -922,11 +922,19 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { if(result == null) { result = spd; } else { - String currentID = result.getId(); - String testID = spd.getId(); - //TODO why compare as string? - if(testID.compareToIgnoreCase(currentID) < 0) { - result = spd; + try{ + int currentID = Integer.parseInt(result.getId()); + int testID = Integer.parseInt(spd.getId()); + if(testID < currentID) { + result = spd; + } + }catch(Exception e){ + //fallback to string compare + String currentID = result.getId(); + String testID = spd.getId(); + if(testID.compareToIgnoreCase(currentID) < 0) { + result = spd; + } } } } -- cgit v1.2.3 From 3fde4b0164d1eb2f3fb32718b4011fff2b2b80ed Mon Sep 17 00:00:00 2001 From: Alexander Marsalek Date: Tue, 1 Jun 2021 11:19:25 +0200 Subject: filter everything from placeholder id except 0-9 during placeholder generation --- .../gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java index 5f2dc95c..6e80fad8 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java @@ -73,9 +73,11 @@ public class PlaceholderGeneratorServlet extends HttpServlet implements Placehol String filename = "placeholder"; if(id != null && !id.isEmpty()) { - id = id.replaceAll("[^a-zA-Z0-9]", "_"); - buildString = buildString + ";" + SignaturePlaceholderData.ID_KEY + "=" + id; - filename = filename + "_" + id; + id = id.replaceAll("[^0-9]", ""); + if(id != null && !id.isEmpty()) { + buildString = buildString + ";" + SignaturePlaceholderData.ID_KEY + "=" + id; + filename = filename + "_" + id; + } } if(profile != null && !profile.isEmpty()) { -- cgit v1.2.3