aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-cli
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2026-04-15 13:49:22 +0200
committerGitHub <noreply@github.com>2026-04-15 13:49:22 +0200
commit77dd3fcc4d85088b15ab859c4438521d9cd6ed10 (patch)
treeaefedc8d2ef77e6819b46a948459d6016dfe5b62 /pdf-as-cli
parent88930540361a88ff56e07fed31004b583f2e729f (diff)
downloadpdf-as-4-77dd3fcc4d85088b15ab859c4438521d9cd6ed10.tar.gz
pdf-as-4-77dd3fcc4d85088b15ab859c4438521d9cd6ed10.tar.bz2
pdf-as-4-77dd3fcc4d85088b15ab859c4438521d9cd6ed10.zip
pdf-as-5 (#82)
- JDK 17 - PDFBox 3 - PDF-AS Web moved to Spring Boot - MOA Integration tests w/ new error code --------- Co-authored-by: Gerald Palfinger <gerald.palfinger@a-sit.at> Co-authored-by: kathrin.resek <kathrin.resek@a-sit.at>
Diffstat (limited to 'pdf-as-cli')
-rw-r--r--pdf-as-cli/build.gradle28
-rw-r--r--pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java4
-rw-r--r--pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java4
-rw-r--r--pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java2
-rw-r--r--pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java2
-rw-r--r--pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java48
6 files changed, 46 insertions, 42 deletions
diff --git a/pdf-as-cli/build.gradle b/pdf-as-cli/build.gradle
index f10d4d7d..2eb4a01f 100644
--- a/pdf-as-cli/build.gradle
+++ b/pdf-as-cli/build.gradle
@@ -2,7 +2,9 @@ apply plugin: 'java-library'
apply plugin: 'eclipse'
apply plugin: 'application'
-mainClassName = "at.gv.egiz.pdfas.cli.Main"
+application {
+ mainClass = "at.gv.egiz.pdfas.cli.Main"
+}
repositories {
mavenLocal()
@@ -16,13 +18,13 @@ task releases(type: Copy) {
}
configurations {
- pdfBox2Compile
+ pdfBox3Compile
}
sourceSets{
- pdfBox2{
- compileClasspath = configurations.pdfBox2Compile
- runtimeClasspath = configurations.pdfBox2Compile + main.runtimeClasspath
+ pdfBox3{
+ compileClasspath = configurations.pdfBox3Compile
+ runtimeClasspath = configurations.pdfBox3Compile + main.runtimeClasspath
}
}
@@ -31,22 +33,22 @@ dependencies {
implementation project (':signature-standards:sigs-pkcs7detached')
implementation project (':signature-standards:sigs-pades')
implementation project (':pdf-as-moa')
- implementation project (':pdf-as-pdfbox-2')
- implementation group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
- implementation group: 'commons-cli', name: 'commons-cli', version: '1.2'
- implementation group: 'javax.activation', name: 'activation', version: '1.1.1'
- implementation 'ch.qos.logback:logback-classic:1.2.13'
- testImplementation group: 'junit', name: 'junit', version: '4.+'
+ implementation project (':pdf-as-pdfbox-3')
+ implementation group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion
+ implementation group: 'commons-cli', name: 'commons-cli', version: commonsCliVersion
+ implementation group: 'jakarta.activation', name: 'jakarta.activation-api', version: jakartaActivationVersion
+ implementation group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion
+ testImplementation group: 'junit', name: 'junit', version: junitVersion
}
startScripts{
- classpath+=sourceSets.pdfBox2.compileClasspath
+ classpath+=sourceSets.pdfBox3.compileClasspath
}
compileJava{
classpath=sourceSets.main.compileClasspath
- classpath+=sourceSets.pdfBox2.compileClasspath
+ classpath+=sourceSets.pdfBox3.compileClasspath
}
diff --git a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java
index 86769c49..ac26cd18 100644
--- a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java
+++ b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java
@@ -33,7 +33,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.UUID;
-import javax.activation.DataSource;
+import jakarta.activation.DataSource;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
@@ -600,7 +600,7 @@ public class Main {
File outputPdfFile = new File(outputFile);
FileOutputStream fos = new FileOutputStream(outputPdfFile,
false);
- fos.write(verifyResult.getSignatureData());
+ fos.write(verifyResult.getSignatureData().getBaseData());
fos.close();
System.out.println("\tSigned PDF: " + outputFile);
}
diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java
index b107474f..fc051e38 100644
--- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java
+++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java
@@ -4,8 +4,8 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
-import javax.activation.DataSource;
-import javax.activation.FileDataSource;
+import jakarta.activation.DataSource;
+import jakarta.activation.FileDataSource;
import at.gv.egiz.pdfas.common.exceptions.PDFASError;
import at.gv.egiz.pdfas.common.settings.ISettings;
diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java
index fcf766b1..17c5d62c 100644
--- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java
+++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java
@@ -7,7 +7,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.security.KeyStore;
-import javax.activation.DataSource;
+import jakarta.activation.DataSource;
import junit.framework.Assert;
diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java
index cb42fe3b..2d633925 100644
--- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java
+++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java
@@ -30,7 +30,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import javax.activation.DataSource;
+import jakarta.activation.DataSource;
import org.apache.commons.io.IOUtils;
diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java
index 186eb5a9..a53cecb3 100644
--- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java
+++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java
@@ -34,6 +34,7 @@ import at.gv.egiz.pdfas.lib.api.sign.SignParameter;
import at.gv.egiz.pdfas.lib.api.sign.SignResult;
import at.gv.egiz.pdfas.sigs.pades.PAdESSignerKeystore;
import org.apache.commons.io.IOUtils;
+import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
@@ -42,7 +43,7 @@ import org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField;
import org.junit.Assert;
import org.junit.Test;
-import javax.activation.DataSource;
+import jakarta.activation.DataSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -129,7 +130,7 @@ public class SignatureBlockParameterTest {
SignResult result = pdfas.sign(signParameter);
fos.close();
- String name = getName(outFile, "PDF-AS Signatur1");
+ String name = getName(outFile, "PDF-AS Signatur 1");
Assert.assertEquals("TEST123 test bar 123 c TEST123 Andreas Fitzek ECC", name);
@@ -147,7 +148,7 @@ public class SignatureBlockParameterTest {
result = pdfas.sign(signParameter);
fos.close();
- name = getName(outFile, "PDF-AS Signatur1");
+ name = getName(outFile, "PDF-AS Signatur 1");
Assert.assertEquals("TEST123 test null 123 c TEST123 Andreas Fitzek ECC", name);
outFile = getPath("out") + "/" + profile + "-2.pdf";
@@ -161,7 +162,7 @@ public class SignatureBlockParameterTest {
signParameter.setSignatureProfileId(profile);
result = pdfas.sign(signParameter);
fos.close();
- name = getName(outFile, "PDF-AS Signatur1");
+ name = getName(outFile, "PDF-AS Signatur 1");
Assert.assertEquals("null test bar 123 c null Andreas Fitzek ECC", name);
outFile = getPath("out") + "/" + profile + "-3.pdf";
@@ -173,7 +174,7 @@ public class SignatureBlockParameterTest {
signParameter.setSignatureProfileId(profile);
result = pdfas.sign(signParameter);
fos.close();
- name = getName(outFile, "PDF-AS Signatur1");
+ name = getName(outFile, "PDF-AS Signatur 1");
Assert.assertEquals("null test null 123 c null Andreas Fitzek ECC", name);
// Assert.assertEquals("{sbp.subject} test {sbp.foo} 123 {subject.T != null ? (subject.T + \" a \"+sbp.subject) : " +
// "\"c \"+sbp.subject+\" \"}Andreas Fitzek ECC", name);
@@ -190,7 +191,7 @@ public class SignatureBlockParameterTest {
signParameter.setSignatureProfileId(profile);
result = pdfas.sign(signParameter);
fos.close();
- name = getName(outFile, "PDF-AS Signatur1");
+ name = getName(outFile, "PDF-AS Signatur 1");
Assert.assertEquals("null test null 123 c null Andreas Fitzek ECC", name);
@@ -226,7 +227,7 @@ public class SignatureBlockParameterTest {
SignResult result = pdfas.sign(signParameter);
fos.close();
- String name = getName(outFile, "PDF-AS Signatur1");
+ String name = getName(outFile, "PDF-AS Signatur 1");
Assert.assertEquals("TEST123 test baräöÜ 123 c TEST123 Andreas Fitzek ECC", name);
//expected:<TEST123 test bar[] 123 c TEST123 Andre...> but was:<TEST123 test bar[äöÜ] 123 c TEST123 Andre...>
}
@@ -262,31 +263,32 @@ public class SignatureBlockParameterTest {
SignResult result = pdfas.sign(signParameter);
fos.close();
- String name = getName(outFile, "PDF-AS Signatur1");
+ String name = getName(outFile, "PDF-AS Signatur 1");
Assert.assertEquals("Andreas Fitzek ECC text after variable", name);
//expected:<TEST123 test bar[] 123 c TEST123 Andre...> but was:<TEST123 test bar[äöÜ] 123 c TEST123 Andre...>
}
private String getName(String fileName, String sigFieldName) throws IOException {
- PDDocument pdDoc = PDDocument.load(new File(fileName));
- PDSignature signature = null;
- PDSignatureField signatureField;
- PDAcroForm acroForm = pdDoc.getDocumentCatalog().getAcroForm();
- if (acroForm != null) {
- List<PDField> aa = acroForm.getFields();
- signatureField = (PDSignatureField) acroForm.getField(sigFieldName);
- if (signatureField != null) {
- // retrieve signature dictionary
- signature = signatureField.getSignature();
- if (signature != null) {
- String name = signature.getName();
- return name;
+ try (PDDocument pdDoc = Loader.loadPDF(new File(fileName))) {
+ PDSignature signature = null;
+ PDSignatureField signatureField;
+ PDAcroForm acroForm = pdDoc.getDocumentCatalog().getAcroForm();
+ if (acroForm != null) {
+ List<PDField> aa = acroForm.getFields();
+ signatureField = (PDSignatureField) acroForm.getField(sigFieldName);
+ if (signatureField != null) {
+ // retrieve signature dictionary
+ signature = signatureField.getSignature();
+ if (signature != null) {
+ String name = signature.getName();
+ return name;
+
+ }
}
-
}
+ return null;
}
- return null;
}
}