diff options
| author | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2026-04-15 13:49:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-15 13:49:22 +0200 |
| commit | 77dd3fcc4d85088b15ab859c4438521d9cd6ed10 (patch) | |
| tree | aefedc8d2ef77e6819b46a948459d6016dfe5b62 /pdf-as-cli | |
| parent | 88930540361a88ff56e07fed31004b583f2e729f (diff) | |
| download | pdf-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')
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; } } |
