aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-moa/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-moa/src/main/java')
-rw-r--r--pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java39
-rw-r--r--pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java9
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);