From c8abbd8bef5349ab892a2853a4e5e3d5ed16b670 Mon Sep 17 00:00:00 2001 From: Jakob Heher Date: Tue, 12 May 2026 15:33:19 +0200 Subject: Update docs & various fixes discovered in the process (#86) - update documentation for pdf-as 5 - document the v2 json api - fix a number of documentation quirks - document `keyId` parameter - px (pixels) -> pt (pdf page units) - document --verify_level - remove a number of documented features that were never implemented: - `adobeSignFieldValue` and `sigLogoAltText` from signature profiles - `UNDERLINE` and `STRIKETHRU` from fonts - `num-bytes` parameter - `verify_only`/`sign_only` enable states for profiles - update mobile BKU base URL - update pdfbox backend default to 3 in sample configurations - consistently made boolean parsing from configuration files case permissive - add moa verification timeout - add support for BOLDITALIC to all base fonts, and for ITALIC to helvetica and courier - fix a number of small quirks - hibernate properties are now reloaded properly - fix the signature block parameter key regex - v1 json api now correctly checks for onlinebku/mobilebku being enabled - pdfbox 2 module correctly compares for integer equality regardless of cached boxed ints - test operationcountwatcher no longer sometimes breaks due to spring context differences --- .../src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java | 16 ++++++++-------- .../src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 8 deletions(-) (limited to 'pdf-as-moa/src/main/java/at') diff --git a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java index 072b0204..7c8ebbf7 100644 --- a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java +++ b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java @@ -151,7 +151,7 @@ public class MOAConnector implements ISignatureConnector, try { moaTimeout = Long.valueOf(timeout); } catch (NumberFormatException e) { - logger.warn("Failed to convert MOA timeout '{}' to a number", timeout, e); + logger.warn("Failed to convert MOA signing timeout '{}' to a number", timeout, e); } } this.moaTimeout = moaTimeout; @@ -185,16 +185,16 @@ public class MOAConnector implements ISignatureConnector, SignatureCreationPortType creationPort = service.getSignatureCreationPort(); BindingProvider provider = (BindingProvider) creationPort; provider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, this.moaEndpoint); - if (moaTimeout != null) { - provider.getRequestContext().put("jakarta.xml.ws.client.connectionTimeout", moaTimeout); - provider.getRequestContext().put("jakarta.xml.ws.client.receiveTimeout", moaTimeout); + if (this.moaTimeout != null) { + provider.getRequestContext().put("jakarta.xml.ws.client.connectionTimeout", this.moaTimeout); + provider.getRequestContext().put("jakarta.xml.ws.client.receiveTimeout", this.moaTimeout); } if (this.mtomEnabled) { - if (provider.getBinding() instanceof SOAPBinding) { - ((SOAPBinding) provider.getBinding()).setMTOMEnabled(true); - - } + if (provider.getBinding() instanceof SOAPBinding) { + ((SOAPBinding) provider.getBinding()).setMTOMEnabled(true); + + } } CreateCMSSignatureRequest request = new CreateCMSSignatureRequest(); diff --git a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java index 21d90681..ba455ae0 100644 --- a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java +++ b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java @@ -11,6 +11,7 @@ import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; import jakarta.xml.ws.BindingProvider; +import lombok.val; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3._2000._09.xmldsig_.KeyInfoType; @@ -39,9 +40,11 @@ public class MOAVerifier implements IVerifier { .getLogger(MOAVerifier.class); private static final String MOA_VERIFY_URL = "moa.verify.url"; + private static final String MOA_VERIFY_TIMEOUT = "moa.verify.timeout"; private static final String MOA_VERIFY_TRUSTPROFILE = "moa.verify.TrustProfileID"; private String moaEndpoint; + private Long moaTimeout; private String moaTrustProfile; @@ -58,6 +61,11 @@ public class MOAVerifier implements IVerifier { SignatureVerificationPortType verificationPort = service.getSignatureVerificationPort(); BindingProvider provider = (BindingProvider) verificationPort; provider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, this.moaEndpoint); + if (this.moaTimeout != null) { + provider.getRequestContext().put("jakarta.xml.ws.client.connectionTimeout", this.moaTimeout); + provider.getRequestContext().put("jakarta.xml.ws.client.receiveTimeout", this.moaTimeout); + } + VerifyCMSSignatureRequest verifyCMSSignatureRequest = new VerifyCMSSignatureRequest(); verifyCMSSignatureRequest.setTrustProfileID(this.moaTrustProfile); verifyCMSSignatureRequest.setCMSSignature(signature); @@ -185,6 +193,14 @@ public class MOAVerifier implements IVerifier { public void setConfiguration(Configuration config) { this.moaEndpoint = config.getValue(MOA_VERIFY_URL); this.moaTrustProfile = config.getValue(MOA_VERIFY_TRUSTPROFILE); + val timeout = config.getValue(MOA_VERIFY_TIMEOUT); + if (timeout != null) { + try { + this.moaTimeout = Long.valueOf(timeout); + } catch (NumberFormatException e) { + logger.warn("Failed to convert MOA verification timeout '{}' to a number", timeout, e); + } + } } @Override -- cgit v1.2.3