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-moa/src/main/java | |
| 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-moa/src/main/java')
| -rw-r--r-- | pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java | 39 | ||||
| -rw-r--r-- | pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java | 9 |
2 files changed, 27 insertions, 21 deletions
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 11d00c75..9923e4bb 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 @@ -30,11 +30,16 @@ import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; +import java.net.http.HttpConnectTimeoutException; +import java.net.http.HttpTimeoutException; import java.security.cert.CertificateException; -import javax.xml.ws.BindingProvider; -import javax.xml.ws.soap.SOAPBinding; +import at.gv.egiz.pdfas.common.exceptions.*; +import jakarta.xml.ws.BindingProvider; +import jakarta.xml.ws.WebServiceException; +import jakarta.xml.ws.soap.SOAPBinding; +import lombok.val; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -51,13 +56,6 @@ import at.gv.e_government.reference.namespace.moa._20020822_.MOAFault; import at.gv.e_government.reference.namespace.moa._20020822_.MetaInfoType; import at.gv.e_government.reference.namespace.moa._20020822_.SignatureCreationPortType; import at.gv.e_government.reference.namespace.moa._20020822_.SignatureCreationService; -import at.gv.egiz.pdfas.common.exceptions.ErrorConstants; -import at.gv.egiz.pdfas.common.exceptions.PDFASError; -import at.gv.egiz.pdfas.common.exceptions.PdfAsErrorCarrier; -import at.gv.egiz.pdfas.common.exceptions.PdfAsException; -import at.gv.egiz.pdfas.common.exceptions.PdfAsMOAException; -import at.gv.egiz.pdfas.common.exceptions.PdfAsSignatureException; -import at.gv.egiz.pdfas.common.exceptions.PdfAsWrappedIOException; import at.gv.egiz.pdfas.common.settings.ISettings; import at.gv.egiz.pdfas.common.utils.SettingsUtils; import at.gv.egiz.pdfas.common.utils.StreamUtils; @@ -134,18 +132,22 @@ public class MOAConnector implements ISignatureConnector, URL certificateURL = new URL(certificateValue); is = certificateURL.openStream(); this.certificate = new X509Certificate(is); - + } catch (MalformedURLException e) { logger.error(certificateValue + " is not a valid url but starts with http!"); throw new PdfAsWrappedIOException(new PdfAsException(certificateValue + " is not a valid url but!")); - + } finally { - if (is != null) { - is.close(); - - } - } - + if (is != null) { + is.close(); + + } + } + } else if (certificateValue.startsWith("base64:")) { + logger.debug("Loading base64 certificate: {}", certificateValue); + + val cert = java.util.Base64.getDecoder().decode(certificateValue.substring(7)); + this.certificate = new X509Certificate(cert); } else { File certFile = new File(certificateValue); @@ -256,6 +258,9 @@ public class MOAConnector implements ISignatureConnector, throw new PdfAsMOAException("", e.getMessage(), "", ""); } + } catch (WebServiceException e) { + val cause = (e.getCause() != null) ? e.getCause() : e; + throw new SLPdfAsException((int) ErrorConstants.ERROR_SIG_CONNECT_ERROR, cause.getMessage()); } if (response.getCMSSignatureOrErrorResponse().size() != 1) { 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 40ea4ba5..21d90681 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 @@ -5,10 +5,11 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.List; -import javax.xml.bind.JAXBElement; +import at.gv.egiz.pdfas.lib.impl.verify.SignatureInputData; +import jakarta.xml.bind.JAXBElement; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import javax.xml.ws.BindingProvider; +import jakarta.xml.ws.BindingProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +45,7 @@ public class MOAVerifier implements IVerifier { private String moaTrustProfile; - public List<VerifyResult> verify(byte[] signature, byte[] signatureContent, + public List<VerifyResult> verify(byte[] signature, SignatureInputData signatureContent, Date verificationTime) throws PdfAsException { List<VerifyResult> resultList = new ArrayList<VerifyResult>(); try { @@ -68,7 +69,7 @@ public class MOAVerifier implements IVerifier { metaDataType.setMetaInfo(metaInfoType); CMSContentBaseType contentBase = new CMSContentBaseType(); - contentBase.setBase64Content(signatureContent); + contentBase.setBase64Content(signatureContent.getSignatureInputBytes()); metaDataType.setContent(contentBase); verifyCMSSignatureRequest.setDataObject(metaDataType); |
