From 05bb51dd0190c56f7ec59f6f0c759e00f1d72edc Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Wed, 11 Dec 2013 12:04:19 +0100 Subject: Signature profile implementations --- .../java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java | 6 ++-- .../SignatureProfileConfiguration.java | 11 ++++++++ .../pdfas/lib/impl/positioning/Positioning.java | 33 +--------------------- .../lib/impl/signing/pdfbox/PADESPDFBOXSigner.java | 13 ++++++--- .../impl/signing/pdfbox/PdfboxSignerWrapper.java | 4 +-- 5 files changed, 27 insertions(+), 40 deletions(-) (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl') diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java index ddfc79ce..fc245592 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java @@ -459,7 +459,7 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants { PositioningInstruction positioningInstruction = Positioning .determineTablePositioning(tablePos, "", originalDocument, - visualObject); + visualObject, false); // ================================================================ // StampingStage (visual) -> stamp logical signature block to @@ -524,6 +524,8 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants { .getDefaultPositioning(); } + boolean legacy32Position = signatureProfileConfiguration.getLegacy32Positioning(); + TablePos tablePos = null; if (posString == null) { @@ -538,7 +540,7 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants { PositioningInstruction positioningInstruction = Positioning .determineTablePositioning(tablePos, "", originalDocument, - visualObject); + visualObject, legacy32Position); // ================================================================ // StampingStage (visual) -> stamp logical signature block to diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/SignatureProfileConfiguration.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/SignatureProfileConfiguration.java index 8f09b495..b8a0139a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/SignatureProfileConfiguration.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/SignatureProfileConfiguration.java @@ -23,4 +23,15 @@ public class SignatureProfileConfiguration extends SpecificBaseConfiguration String key = SIG_OBJECT + SEPERATOR + profileID + SEPERATOR + TABLE + SEPERATOR + POS; return this.configuration.getValue(key); } + + public boolean getLegacy32Positioning() { + String key = SIG_OBJECT + SEPERATOR + profileID + LEGACY_POSITIONING; + String value = this.configuration.getValue(key); + if(value != null) { + if(value.equalsIgnoreCase(TRUE)) { + return true; + } + } + return false; + } } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java index 340ba0bb..da7da772 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/positioning/Positioning.java @@ -47,39 +47,8 @@ public class Positioning { * F.e. */ public static PositioningInstruction determineTablePositioning(TablePos pos, String signature_type, - PDDocument pdfDataSource, IPDFVisualObject pdf_table) throws PdfAsException + PDDocument pdfDataSource, IPDFVisualObject pdf_table, boolean legacy32) throws PdfAsException { - boolean legacy32 = false; - - //TODO: settings reader ... - - /* - if (pos == null) - { - String pos_string = SettingsReader.getInstance().getSetting(SignatureTypes.SIG_OBJ + signature_type + ".pos", null); - if (pos_string != null) - { - pos = PdfAS.parsePositionFromPosString(pos_string); - } - } - if (pos == null) - { - // The default algorithm. x,y,w =auto ,p=lastpage, f:ignored because - // y:auto - pos = new TablePos(); - } - - // afitzek - // Allow legacy positioning (3.2) for BRZ Templates ... - boolean legacy32 = false; - String leg = SettingsReader.getInstance().getSetting(SignatureTypes.SIG_OBJ + signature_type + ".legacy.pos", "false"); - if (leg != null) { - if ("true".equals(leg.trim())) { - legacy32 = true; - } - } - */ - // System.out.println("Tablepos="+pos); return adjustSignatureTableandCalculatePosition(pdfDataSource, pdf_table, pos, legacy32); } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java index 7273b8a9..cc75ff69 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java @@ -65,11 +65,16 @@ public class PADESPDFBOXSigner implements IPdfSigner { String signerName = resolver.resolve("SIG_SUBJECT", signatureProfileSettings.getValue("SIG_SUBJECT"), signatureProfileSettings, requestedSignature); - signature.setName(signerName); - //signature.setLocation("signer location"); - signature.setReason("PDF-AS Signatur"); - + signature.setSignDate(Calendar.getInstance()); + String signerReason = signatureProfileSettings.getSigningReason(); + + if(signerReason == null) { + signerReason = "PAdES Signature"; + } + + signature.setReason(signerReason); + logger.debug("Signing reason: " + signerReason); logger.debug("Signing @ " + signer.getSigningDate().getTime().toString()); // the signing date, needed for valid signature diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java index 554a5b98..718acc24 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java @@ -42,10 +42,10 @@ public class PdfboxSignerWrapper implements PDFASSignatureInterface { try { byte[] signature = signer.sign(data, byteRange); /*logger.debug("Signature Data: " - + iaik.utils.Util.toBase64String(signature)); + + iaik.utils.Util.toBase64String(signature));*/ FileOutputStream fos = new FileOutputStream("/tmp/fos.bin"); fos.write(signature); - fos.close();*/ + fos.close(); return signature; } catch (PdfAsException e) { throw new PdfAsWrappedIOException(e); -- cgit v1.2.3