From c43f9764b2132ce54a491c1daeeafe6aa4851ef5 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Fri, 28 Jun 2019 10:29:50 +0200 Subject: Separate Test Suite into Unit- And Integration Tests Per default, integration tests are excluded from build. They can be included with the `-P integration-test` argument. - Pom: Add maven profile for integration tests. - Rename integration tests (add `IT` prefix). - Move Resources into IT* folders. - Add MsgClientTest to test suite and add assertions to each test case. --- .../egiz/moazs/ITMoaSPSSSignatureVerifierTest.java | 56 +++++++ .../java/at/gv/egiz/moazs/ITMsgClientTest.java | 185 +++++++++++++++++++++ .../java/at/gv/egiz/moazs/ITMzsServiceTest.java | 131 +++++++++++++++ .../egiz/moazs/MoaSPSSSignatureVerifierTest.java | 56 ------- src/test/java/at/gv/egiz/moazs/MsgClientTest.java | 182 -------------------- src/test/java/at/gv/egiz/moazs/MzsServiceTest.java | 131 --------------- .../invalid-signed-delivery-response.xml | 30 ++++ .../valid-signed-delivery-response.xml | 30 ++++ .../moazs/ITMsgClientTest/validDeliveryRequest.xml | 56 +++++++ .../formallyIncorrectDeliveryRequest.soap | 53 ++++++ .../ITMzsServiceTest/missingAppDeliveryId.soap | 55 ++++++ .../moazs/ITMzsServiceTest/missingMetaData.soap | 51 ++++++ .../egiz/moazs/ITMzsServiceTest/missingSender.soap | 46 +++++ .../ITMzsServiceTest/profileAndCorporateBody.soap | 59 +++++++ .../ITMzsServiceTest/validDeliveryRequest.soap | 56 +++++++ .../invalid-signed-delivery-response.xml | 30 ---- .../valid-signed-delivery-response.xml | 30 ---- .../moazs/MsgClientTest/validDeliveryRequest.xml | 56 ------- .../formallyIncorrectDeliveryRequest.soap | 53 ------ .../moazs/MzsServiceTest/missingAppDeliveryId.soap | 55 ------ .../egiz/moazs/MzsServiceTest/missingMetaData.soap | 51 ------ .../egiz/moazs/MzsServiceTest/missingSender.soap | 46 ----- .../MzsServiceTest/profileAndCorporateBody.soap | 59 ------- .../moazs/MzsServiceTest/validDeliveryRequest.soap | 56 ------- 24 files changed, 808 insertions(+), 805 deletions(-) create mode 100644 src/test/java/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest.java create mode 100644 src/test/java/at/gv/egiz/moazs/ITMsgClientTest.java create mode 100644 src/test/java/at/gv/egiz/moazs/ITMzsServiceTest.java delete mode 100644 src/test/java/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest.java delete mode 100644 src/test/java/at/gv/egiz/moazs/MsgClientTest.java delete mode 100644 src/test/java/at/gv/egiz/moazs/MzsServiceTest.java create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMsgClientTest/validDeliveryRequest.xml create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/formallyIncorrectDeliveryRequest.soap create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingAppDeliveryId.soap create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingMetaData.soap create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingSender.soap create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/profileAndCorporateBody.soap create mode 100644 src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/validDeliveryRequest.soap delete mode 100644 src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml delete mode 100644 src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml delete mode 100644 src/test/resources/at/gv/egiz/moazs/MsgClientTest/validDeliveryRequest.xml delete mode 100644 src/test/resources/at/gv/egiz/moazs/MzsServiceTest/formallyIncorrectDeliveryRequest.soap delete mode 100644 src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingAppDeliveryId.soap delete mode 100644 src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingMetaData.soap delete mode 100644 src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingSender.soap delete mode 100644 src/test/resources/at/gv/egiz/moazs/MzsServiceTest/profileAndCorporateBody.soap delete mode 100644 src/test/resources/at/gv/egiz/moazs/MzsServiceTest/validDeliveryRequest.soap (limited to 'src/test') diff --git a/src/test/java/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest.java b/src/test/java/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest.java new file mode 100644 index 0000000..2c6b978 --- /dev/null +++ b/src/test/java/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest.java @@ -0,0 +1,56 @@ +package at.gv.egiz.moazs; + +import at.gv.egiz.eid.authhandler.modules.sigverify.moasig.api.ISignatureVerificationService; +import at.gv.egiz.moazs.verify.MoaSPSSSignatureVerifier; +import at.gv.egiz.moazs.verify.SignatureVerifier; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.test.context.junit4.SpringRunner; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; + +//Note: Certificate that signed these delivery responses expires in 2023-09-27. +@RunWith(SpringRunner.class) +@SpringBootTest + public class ITMoaSPSSSignatureVerifierTest { + + private final String resourcesPath = "src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/"; + + @TestConfiguration + public class Config{ + + @Bean + public SignatureVerifier verifier(@Autowired ISignatureVerificationService service){ + return new MoaSPSSSignatureVerifier(service, "test-trust-profile", true); + } + + } + + @Autowired + private SignatureVerifier verifier; + + @Test + public void acceptValidSignedDeliveryResponse() throws IOException { + + var path = resourcesPath + "valid-signed-delivery-response.xml"; + var signature = Files.readAllBytes(new File(path).toPath()); + + verifier.verify(signature); + } + + @Test(expected = MoaZSException.class) + public void rejectInvalidSignedDeliveryResponse() throws IOException { + + var path = resourcesPath + "invalid-signed-delivery-response.xml"; + var signature = Files.readAllBytes(new File(path).toPath()); + + verifier.verify(signature); + } + +} diff --git a/src/test/java/at/gv/egiz/moazs/ITMsgClientTest.java b/src/test/java/at/gv/egiz/moazs/ITMsgClientTest.java new file mode 100644 index 0000000..10c2859 --- /dev/null +++ b/src/test/java/at/gv/egiz/moazs/ITMsgClientTest.java @@ -0,0 +1,185 @@ +package at.gv.egiz.moazs; + +import at.gv.egiz.moazs.msg.MsgClientFactory; +import at.gv.egiz.moazs.msg.StoreSOAPBodyBinaryInRepositoryInterceptor; +import at.gv.egiz.moazs.scheme.Marshaller; +import at.gv.zustellung.app2mzs.xsd.ClientType; +import at.gv.zustellung.app2mzs.xsd.KeyStoreType; +import at.gv.zustellung.msg.xsd.DeliveryRequestType; +import at.gv.zustellung.msg.xsd.ObjectFactory; +import org.assertj.core.api.Assertions; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.xml.bind.JAXBElement; +import javax.xml.ws.soap.SOAPFaultException; +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.IOException; +import java.math.BigInteger; + +import static at.gv.zustellung.app2mzs.xsd.ClientType.clientTypeBuilder; +import static at.gv.zustellung.app2mzs.xsd.KeyStoreType.keyStoreTypeBuilder; +import static at.gv.zustellung.app2mzs.xsd.SSLType.SSLTypeBuilder; +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ITMsgClientTest { + + private final static Logger log = LoggerFactory.getLogger(ITMsgClientTest.class); + private static final Object VALID_MZS_REQUEST_ID = "valid-delivery-request-id" ; + private final String basePath = "src/test/resources/at/gv/egiz/moazs/ITMsgClientTest/"; + + @Autowired + private Marshaller msgMarshaller; + + @Autowired + private MsgClientFactory factory; + + @Autowired + private StoreSOAPBodyBinaryInRepositoryInterceptor interceptor; + + private static final ObjectFactory OF = new ObjectFactory(); + + + // Requirements: + // - run zusemsg service under httpServiceURL + @Test + public void sendValidMessage() throws IOException { + + var request = loadFromFile("validDeliveryRequest.xml"); + var httpServiceURL = "http://localhost:8081/services/DeliveryRequest"; + var clientParams = clientTypeBuilder() + .withURL(httpServiceURL) + .withConnectionTimeout(BigInteger.ZERO) + .withReceiveTimeout(BigInteger.ZERO) + .build(); + + var client = factory.create(clientParams); + + var status = client.delivery(request); + assertThat(status.getPartialSuccess().getAppDeliveryID()).isEqualTo(VALID_MZS_REQUEST_ID); + + } + + // Requirements: + // - run zusemsg service under httpsServiceURL + // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) + // - server uses the server certificate in ssl/server/server.localhost.*.pem + // - server sends certificate chain ssl/server/ca-chain.cert.pem + @Test + public void sendOverSSLWithClientAuthentication() throws IOException { + + var request = loadFromFile("validDeliveryRequest.xml"); + var httpsServiceURL = "https://localhost/zusemsg/services/DeliveryRequest"; + + var clientParams = generateSSLClientParams(httpsServiceURL, false, false); + var client = factory.create(clientParams); + + var status = client.delivery(request); + assertThat(status.getPartialSuccess().getAppDeliveryID()).isEqualTo(VALID_MZS_REQUEST_ID); + } + + // Requirements: + // - run zusemsg service under httpsServiceURL + // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) + // - server uses the server certificate in ssl/server/server.localhost.*.pem + // - server sends certificate chain ssl/server/ca-chain.cert.pem + @Test + public void sendOverSSLWithClientAuthTrustAll() throws IOException { + + var request = loadFromFile("validDeliveryRequest.xml"); + var httpsServiceURL = "https://localhost/zusemsg/services/DeliveryRequest"; + + var clientParams = generateSSLClientParams(httpsServiceURL, true, false); + var client = factory.create(clientParams); + + var status = client.delivery(request); + assertThat(status.getPartialSuccess().getAppDeliveryID()).isEqualTo(VALID_MZS_REQUEST_ID); + } + + // Requirements: + // - run zusemsg service under httpsServiceURL (e.g. by adding notlocalhost to /etc/hosts) + // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) + // - server uses the server certificate in ssl/server/server.localhost.*.pem + // - server sends certificate chain ssl/server/ca-chain.cert.pem + @Test + public void sendOverSSLWithClientAuthLaxHostnameVerification() throws IOException { + + var request = loadFromFile("validDeliveryRequest.xml"); + var httpsServiceURL = "https://notlocalhost/zusemsg/services/DeliveryRequest"; + + var clientParams = generateSSLClientParams(httpsServiceURL, false, true); + var client = factory.create(clientParams); + + var status = client.delivery(request); + assertThat(status.getPartialSuccess().getAppDeliveryID()).isEqualTo(VALID_MZS_REQUEST_ID); + } + + //Requirements: + // - run zusemsg service under httpsServiceURL (e.g. by adding notlocalhost to /etc/hosts) + // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) + // - server uses the server certificate in ssl/server/server.localhost.*.pem + // - server sends certificate chain ssl/server/ca-chain.cert.pem + @Test(expected=SOAPFaultException.class) + public void rejectBecauseHostNameVerificationFails() throws IOException { + + var request = loadFromFile("validDeliveryRequest.xml"); + var httpsServiceURL = "https://notlocalhost/zusemsg/services/DeliveryRequest"; + + var clientParams = generateSSLClientParams(httpsServiceURL, false, false); + var client = factory.create(clientParams); + + client.delivery(request); + } + + private ClientType generateSSLClientParams(String httpsServiceURL, boolean trustAll, boolean laxHostNameVerification) { + return generateSSLClientParams(httpsServiceURL, trustAll, laxHostNameVerification, generateTrustLocalhostStore()); + } + + private ClientType generateSSLClientParams(String httpsServiceURL, boolean trustAll, boolean laxHostNameVerification, KeyStoreType truststore) { + + var keystore = keyStoreTypeBuilder() + .withFileName("ssl/client.cert.key.p12") + .withFileType("PKCS12") + .withPassword("123456") + .build(); + + var sslParams = SSLTypeBuilder() + .withLaxHostNameVerification(laxHostNameVerification) + .withTrustAll(trustAll) + .withKeyStore(keystore) + .withTrustStore(trustAll ? null : truststore) + .build(); + + return clientTypeBuilder() + .withURL(httpsServiceURL) + .withSSL(sslParams) + .withReceiveTimeout(BigInteger.ZERO) + .withConnectionTimeout(BigInteger.ZERO) + .build(); + + } + + private KeyStoreType generateTrustLocalhostStore() { + return keyStoreTypeBuilder() + .withFileName("ssl/truststore.jks") + .withPassword("123456") + .withFileType("JKS") + .build(); + } + + private DeliveryRequestType loadFromFile(String fileName) throws IOException { + try (var inputStream = new BufferedInputStream(new FileInputStream(basePath + fileName))) { + var request = (JAXBElement) msgMarshaller.unmarshallXml(inputStream); + return request.getValue(); + } + } + +} diff --git a/src/test/java/at/gv/egiz/moazs/ITMzsServiceTest.java b/src/test/java/at/gv/egiz/moazs/ITMzsServiceTest.java new file mode 100644 index 0000000..4f24518 --- /dev/null +++ b/src/test/java/at/gv/egiz/moazs/ITMzsServiceTest.java @@ -0,0 +1,131 @@ +package at.gv.egiz.moazs; + +import at.gv.egiz.moazs.pipeline.DeliveryPipeline; +import at.gv.egiz.moazs.repository.DeliveryRepository; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; +import javax.xml.datatype.XMLGregorianCalendar; +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.file.Paths; +import java.util.GregorianCalendar; + +import static at.gv.zustellung.msg.xsd.DeliveryRequestStatusType.Success.successBuilder; +import static at.gv.zustellung.msg.xsd.DeliveryRequestStatusType.deliveryRequestStatusTypeBuilder; +import static java.net.http.HttpClient.Version; +import static org.junit.Assert.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) + +public class ITMzsServiceTest { + + private final String serviceUri = "http://localhost:8080/services/DeliveryRequest"; + + private final String basePath = "src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/"; + + private final static Logger logger = LoggerFactory.getLogger(ITMzsServiceTest.class); + + @TestConfiguration + public static class TestConfig { + + @Autowired + private DeliveryRepository repository; + + @Bean + @Primary + public DeliveryPipeline deliveryPipelineThatAlwaysSucceeds() { + return appDeliveryId -> { + + var success = successBuilder() + .withDeliverySystem("Test Delivery System") + .withZSDeliveryID("ZD-Delivery-ID") + .withAppDeliveryID(appDeliveryId) + .withDeliveryTimestamp(genTimeStamp()) + .build(); + + var status = deliveryRequestStatusTypeBuilder() + .withSuccess(success) + .build(); + + repository.add(status); + }; + } + + private XMLGregorianCalendar genTimeStamp() { + try { + return DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()); + } catch (DatatypeConfigurationException e) { + throw new RuntimeException("ups"); + } + + } + } + + @Test + public void acceptValidDeliveryRequest() throws IOException, InterruptedException { + var response = sendDeliveryRequestFile("validDeliveryRequest.soap"); + assertEquals(200, response.statusCode()); + } + + @Test + public void rejectRequestWithoutSender() throws IOException, InterruptedException { + var response = sendDeliveryRequestFile("missingSender.soap"); + assertEquals(500, response.statusCode()); + } + + @Test + public void rejectBothProfileAndCorporateBody() throws IOException, InterruptedException { + var response = sendDeliveryRequestFile("profileAndCorporateBody.soap"); + assertEquals(500, response.statusCode()); + } + + @Test + public void rejectFormallyIncorrectDeliveryRequest() throws IOException, InterruptedException { + var response = sendDeliveryRequestFile("formallyIncorrectDeliveryRequest.soap"); + assertEquals(500, response.statusCode()); + } + + @Test + public void rejectRequestWithoutAppDeliveryID() throws IOException, InterruptedException { + var response = sendDeliveryRequestFile("missingAppDeliveryId.soap"); + assertEquals(500, response.statusCode()); + } + + @Test + public void rejectRequestWithoutMetaData() throws IOException, InterruptedException { + var response = sendDeliveryRequestFile("missingMetaData.soap"); + assertEquals(500, response.statusCode()); + } + + private HttpResponse sendDeliveryRequestFile(String fileName) throws IOException, InterruptedException { + + var path = basePath + fileName; + var client = HttpClient.newBuilder().version(Version.HTTP_1_1).build(); + var request = HttpRequest.newBuilder() + .uri(URI.create(serviceUri)) + .header("Content-Type", "text/xml;charset=UTF-8") + .header("SOAPAction", "\"\"") + .POST(HttpRequest.BodyPublishers.ofFile(Paths.get(path))) + .build(); + + return client.send(request, HttpResponse.BodyHandlers.ofString()); + + } + +} diff --git a/src/test/java/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest.java b/src/test/java/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest.java deleted file mode 100644 index 7d3e9d1..0000000 --- a/src/test/java/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package at.gv.egiz.moazs; - -import at.gv.egiz.eid.authhandler.modules.sigverify.moasig.api.ISignatureVerificationService; -import at.gv.egiz.moazs.verify.MoaSPSSSignatureVerifier; -import at.gv.egiz.moazs.verify.SignatureVerifier; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.test.context.junit4.SpringRunner; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; - -//Note: Certificate that signed these delivery responses expires in 2023-09-27. -@RunWith(SpringRunner.class) -@SpringBootTest - public class MoaSPSSSignatureVerifierTest { - - private final String resourcesPath = "src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/"; - - @TestConfiguration - public class Config{ - - @Bean - public SignatureVerifier verifier(@Autowired ISignatureVerificationService service){ - return new MoaSPSSSignatureVerifier(service, "test-trust-profile", true); - } - - } - - @Autowired - private SignatureVerifier verifier; - - @Test - public void acceptValidSignedDeliveryResponse() throws IOException { - - var path = resourcesPath + "valid-signed-delivery-response.xml"; - var signature = Files.readAllBytes(new File(path).toPath()); - - verifier.verify(signature); - } - - @Test(expected = MoaZSException.class) - public void rejectInvalidSignedDeliveryResponse() throws IOException { - - var path = resourcesPath + "invalid-signed-delivery-response.xml"; - var signature = Files.readAllBytes(new File(path).toPath()); - - verifier.verify(signature); - } - -} diff --git a/src/test/java/at/gv/egiz/moazs/MsgClientTest.java b/src/test/java/at/gv/egiz/moazs/MsgClientTest.java deleted file mode 100644 index 485d01c..0000000 --- a/src/test/java/at/gv/egiz/moazs/MsgClientTest.java +++ /dev/null @@ -1,182 +0,0 @@ -package at.gv.egiz.moazs; - -import at.gv.egiz.moazs.msg.MsgClientFactory; -import at.gv.egiz.moazs.msg.StoreSOAPBodyBinaryInRepositoryInterceptor; -import at.gv.egiz.moazs.scheme.Marshaller; -import at.gv.zustellung.app2mzs.xsd.ClientType; -import at.gv.zustellung.app2mzs.xsd.KeyStoreType; -import at.gv.zustellung.msg.xsd.DeliveryRequestType; -import at.gv.zustellung.msg.xsd.ObjectFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; - -import javax.xml.bind.JAXBElement; -import java.io.BufferedInputStream; -import java.io.FileInputStream; -import java.io.IOException; -import java.math.BigInteger; - -import static at.gv.zustellung.app2mzs.xsd.ClientType.clientTypeBuilder; -import static at.gv.zustellung.app2mzs.xsd.KeyStoreType.keyStoreTypeBuilder; -import static at.gv.zustellung.app2mzs.xsd.SSLType.SSLTypeBuilder; - -// @RunWith(SpringRunner.class) -// @SpringBootTest - -public class MsgClientTest { - - private final static Logger log = LoggerFactory.getLogger(MsgClientTest.class); - private final String basePath = "src/test/resources/at/gv/egiz/moazs/MsgClientTest/"; - - @Autowired - private Marshaller msgMarshaller; - - @Autowired - private MsgClientFactory factory; - - @Autowired - private StoreSOAPBodyBinaryInRepositoryInterceptor interceptor; - - private static final ObjectFactory OF = new ObjectFactory(); - - - // tmp disabled. todo: set up integration tests - - // Requirements: - // - run zusemsg service under httpServiceURL - // @Test - public void sendValidMessage() throws IOException { - - var request = loadFromFile("validDeliveryRequest.xml"); - var httpServiceURL = "http://localhost:8081/services/DeliveryRequest"; - var clientParams = clientTypeBuilder() - .withURL(httpServiceURL) - .build(); - - var client = factory.create(clientParams); - - try{ - var status = client.delivery(request); - log.info("status: " + msgMarshaller.marshallXml(OF.createDeliveryResponse(status))); - } catch (Exception ex) { - System.out.println(ex.getMessage()); - } - } - - // Requirements: - // - run zusemsg service under httpsServiceURL - // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) - // - server uses the server certificate in ssl/server/server.localhost.*.pem - // - server sends certificate chain ssl/server/ca-chain.cert.pem - //@Test - public void sendOverSSLWithClientAuthentication() throws IOException { - - var request = loadFromFile("validDeliveryRequest.xml"); - var httpsServiceURL = "https://localhost/zusemsg/services/DeliveryRequest"; - - var clientParams = generateSSLClientParams(httpsServiceURL, false, false); - var client = factory.create(clientParams); - - var status = client.delivery(request); - log.info("status: " + msgMarshaller.marshallXml(OF.createDeliveryRequestStatus(status))); - } - - // Requirements: - // - run zusemsg service under httpsServiceURL - // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) - // - server uses the server certificate in ssl/server/server.localhost.*.pem - // - server sends certificate chain ssl/server/ca-chain.cert.pem - //@Test - public void sendOverSSLWithClientAuthTrustAll() throws IOException { - - var request = loadFromFile("validDeliveryRequest.xml"); - var httpsServiceURL = "https://localhost/zusemsg/services/DeliveryRequest"; - - var clientParams = generateSSLClientParams(httpsServiceURL, true, false); - var client = factory.create(clientParams); - - var status = client.delivery(request); - log.info("status: " + msgMarshaller.marshallXml(OF.createDeliveryRequestStatus(status))); - } - - // Requirements: - // - run zusemsg service under httpsServiceURL (e.g. by adding notlocalhost to /etc/hosts) - // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) - // - server uses the server certificate in ssl/server/server.localhost.*.pem - // - server sends certificate chain ssl/server/ca-chain.cert.pem - //@Test - public void sendOverSSLWithClientAuthLaxHostnameVerification() throws IOException { - - var request = loadFromFile("validDeliveryRequest.xml"); - var httpsServiceURL = "https://notlocalhost/zusemsg/services/DeliveryRequest"; - - var clientParams = generateSSLClientParams(httpsServiceURL, false, true); - var client = factory.create(clientParams); - - var status = client.delivery(request); - log.info("status: " + msgMarshaller.marshallXml(OF.createDeliveryRequestStatus(status))); - } - - //Requirements: - // - run zusemsg service under httpsServiceURL (e.g. by adding notlocalhost to /etc/hosts) - // - server trusts client cert (by trusting CA bundle in ssl/trusted-cas-bundle.pem) - // - server uses the server certificate in ssl/server/server.localhost.*.pem - // - server sends certificate chain ssl/server/ca-chain.cert.pem - //@Test(expected=SOAPFaultException.class) - public void rejectBecauseHostNameVerificationFails() throws IOException { - - var request = loadFromFile("validDeliveryRequest.xml"); - var httpsServiceURL = "https://notlocalhost/zusemsg/services/DeliveryRequest"; - - var clientParams = generateSSLClientParams(httpsServiceURL, false, false); - var client = factory.create(clientParams); - - var status = client.delivery(request); - log.info("status: " + msgMarshaller.marshallXml(OF.createDeliveryRequestStatus(status))); - } - - private ClientType generateSSLClientParams(String httpsServiceURL, boolean trustAll, boolean laxHostNameVerification) { - return generateSSLClientParams(httpsServiceURL, trustAll, laxHostNameVerification, generateTrustLocalhostStore()); - } - - private ClientType generateSSLClientParams(String httpsServiceURL, boolean trustAll, boolean laxHostNameVerification, KeyStoreType truststore) { - - var keystore = keyStoreTypeBuilder() - .withFileName("ssl/client.cert.key.p12") - .withFileType("PKCS12") - .withPassword("123456") - .build(); - - var sslParams = SSLTypeBuilder() - .withLaxHostNameVerification(laxHostNameVerification) - .withTrustAll(trustAll) - .withKeyStore(keystore) - .withTrustStore(trustAll ? null : truststore) - .build(); - - return clientTypeBuilder() - .withURL(httpsServiceURL) - .withSSL(sslParams) - .withReceiveTimeout(BigInteger.ZERO) - .withConnectionTimeout(BigInteger.ZERO) - .build(); - - } - - private KeyStoreType generateTrustLocalhostStore() { - return keyStoreTypeBuilder() - .withFileName("ssl/truststore.jks") - .withPassword("123456") - .withFileType("JKS") - .build(); - } - - private DeliveryRequestType loadFromFile(String fileName) throws IOException { - try (var inputStream = new BufferedInputStream(new FileInputStream(basePath + fileName))) { - var request = (JAXBElement) msgMarshaller.unmarshallXml(inputStream); - return request.getValue(); - } - } - -} diff --git a/src/test/java/at/gv/egiz/moazs/MzsServiceTest.java b/src/test/java/at/gv/egiz/moazs/MzsServiceTest.java deleted file mode 100644 index 579051d..0000000 --- a/src/test/java/at/gv/egiz/moazs/MzsServiceTest.java +++ /dev/null @@ -1,131 +0,0 @@ -package at.gv.egiz.moazs; - -import at.gv.egiz.moazs.pipeline.DeliveryPipeline; -import at.gv.egiz.moazs.repository.DeliveryRepository; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Primary; -import org.springframework.test.context.junit4.SpringRunner; - -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import javax.xml.datatype.XMLGregorianCalendar; -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.nio.file.Paths; -import java.util.GregorianCalendar; - -import static at.gv.zustellung.msg.xsd.DeliveryRequestStatusType.Success.successBuilder; -import static at.gv.zustellung.msg.xsd.DeliveryRequestStatusType.deliveryRequestStatusTypeBuilder; -import static java.net.http.HttpClient.Version; -import static org.junit.Assert.assertEquals; - -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) - -public class MzsServiceTest { - - private final String serviceUri = "http://localhost:8080/services/DeliveryRequest"; - - private final String basePath = "src/test/resources/at/gv/egiz/moazs/MzsServiceTest/"; - - private final static Logger logger = LoggerFactory.getLogger(MzsServiceTest.class); - - @TestConfiguration - public static class TestConfig { - - @Autowired - private DeliveryRepository repository; - - @Bean - @Primary - public DeliveryPipeline deliveryPipelineThatAlwaysSucceeds() { - return appDeliveryId -> { - - var success = successBuilder() - .withDeliverySystem("Test Delivery System") - .withZSDeliveryID("ZD-Delivery-ID") - .withAppDeliveryID(appDeliveryId) - .withDeliveryTimestamp(genTimeStamp()) - .build(); - - var status = deliveryRequestStatusTypeBuilder() - .withSuccess(success) - .build(); - - repository.add(status); - }; - } - - private XMLGregorianCalendar genTimeStamp() { - try { - return DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()); - } catch (DatatypeConfigurationException e) { - throw new RuntimeException("ups"); - } - - } - } - - @Test - public void acceptValidDeliveryRequest() throws IOException, InterruptedException { - var response = sendDeliveryRequestFile("validDeliveryRequest.soap"); - assertEquals(200, response.statusCode()); - } - - @Test - public void rejectRequestWithoutSender() throws IOException, InterruptedException { - var response = sendDeliveryRequestFile("missingSender.soap"); - assertEquals(500, response.statusCode()); - } - - @Test - public void rejectBothProfileAndCorporateBody() throws IOException, InterruptedException { - var response = sendDeliveryRequestFile("profileAndCorporateBody.soap"); - assertEquals(500, response.statusCode()); - } - - @Test - public void rejectFormallyIncorrectDeliveryRequest() throws IOException, InterruptedException { - var response = sendDeliveryRequestFile("formallyIncorrectDeliveryRequest.soap"); - assertEquals(500, response.statusCode()); - } - - @Test - public void rejectRequestWithoutAppDeliveryID() throws IOException, InterruptedException { - var response = sendDeliveryRequestFile("missingAppDeliveryId.soap"); - assertEquals(500, response.statusCode()); - } - - @Test - public void rejectRequestWithoutMetaData() throws IOException, InterruptedException { - var response = sendDeliveryRequestFile("missingMetaData.soap"); - assertEquals(500, response.statusCode()); - } - - private HttpResponse sendDeliveryRequestFile(String fileName) throws IOException, InterruptedException { - - var path = basePath + fileName; - var client = HttpClient.newBuilder().version(Version.HTTP_1_1).build(); - var request = HttpRequest.newBuilder() - .uri(URI.create(serviceUri)) - .header("Content-Type", "text/xml;charset=UTF-8") - .header("SOAPAction", "\"\"") - .POST(HttpRequest.BodyPublishers.ofFile(Paths.get(path))) - .build(); - - return client.send(request, HttpResponse.BodyHandlers.ofString()); - - } - -} diff --git a/src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml b/src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml new file mode 100644 index 0000000..b850145 --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml @@ -0,0 +1,30 @@ +https://testzustellsystem.egiz.gv.atmanipulated-delivery-idmanipulated-delivery-request-id00000ejvUI0yh/IIyauFe8x5ZonD/i5oznl8vFyS3oLNivzA=hmVZrLkMDbXaRLYQKOaV3OtK13TQgMu3csKyw9M4zWqNyva1yxnYkzoX3dKDOdc9 +O56yQJsjoA3Cuw7pXlGO7jSfVM77dTXbWSDaF95O9Vdsrmr7R6Uki0jA9SmgQLXg +hZAUG8JpsHcBn8M0L2BXADKjSn0LuMDL2L7dmU3EM7eRy+OvFwDrXDw1fhjQO6L2 +KoflAWLgUerDhJSpzr0+YfmkrjzitLUA7oIg8ieOnfGyql31ECmDJEqgnL78hyPZ +KaNZImDf3EWFs8je6mt+os1TwsyXYwz+GGbjoDR8lGTS9xVqnXdrgP8Jyv6p9FEu +0IYgSY2FlbI3skPZC8ZVXg==MIIEqzCCBBSgAwIBAgIHANux81oNezANBgkqhkiG9w0BAQUFADBAMSIwIAYDVQQD +ExlJQUlLIFRlc3QgSW50ZXJtZWRpYXRlIENBMQ0wCwYDVQQKEwRJQUlLMQswCQYD +VQQGEwJBVDAeFw0xMzA5MjcwNTMzMzdaFw0yMzA5MjcwNTMzMzdaMIHkMQswCQYD +VQQGEwJBVDENMAsGA1UEBxMER3JhejEmMCQGA1UEChMdR3JheiBVbml2ZXJzaXR5 +IG9mIFRlY2hub2xvZ3kxSDBGBgNVBAsTP0luc3RpdHV0ZSBmb3IgQXBwbGllZCBJ +bmZvcm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEUMBIGA1UE +BBMLTU9BLVNTIFRlc3QxGDAWBgNVBCoTD0VHSVogVGVzdHBvcnRhbDEkMCIGA1UE +AxMbRUdJWiBUZXN0cG9ydGFsIE1PQS1TUyBUZXN0MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAuDjOyf+mY+oQL2FQzzuaiC8C23vVKbq/n2Zi7BqSibZH +mtqMJfmj4pT+hWSNHvVvWsaxFcx4KeNqdCMzwnw1r4P3Sf+2o5uFku5KHEMLMokR +yYQG9VqY/KkB94ye7Pv6zT8gvKqxGFg96UamECep4swPaSZrA8AOER5WAtyGDzKI +Tz+a5zfFaTXDoba7f98PCWR96yKiFjVOhzp38WVz4VJgz+b8ZSY7Xsv5Kn7DXjOL +STX4MevFLki3rFPup3+4vGToaMBW3PEj67HXBdqR855Le6+E6rVxORqsXqlVwhsI +6nuS0CO2LWYmBNR1IB0mXteeYH/HfxvuZc+7yDjdPQIDAQABo4IBhDCCAYAwDgYD +VR0PAQH/BAQDAgbAMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFEmcH6VY4BG1EAGB +TLoNR9vH/g6yMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jYS5pYWlrLnR1Z3Jh +ei5hdC9jYXBzby9jcmxzL0lBSUtUZXN0X0ludGVybWVkaWF0ZUNBLmNybDCBqgYI +KwYBBQUHAQEEgZ0wgZowSgYIKwYBBQUHMAGGPmh0dHA6Ly9jYS5pYWlrLnR1Z3Jh +ei5hdC9jYXBzby9PQ1NQP2NhPUlBSUtUZXN0X0ludGVybWVkaWF0ZUNBMEwGCCsG +AQUFBzAChkBodHRwOi8vY2EuaWFpay50dWdyYXouYXQvY2Fwc28vY2VydHMvSUFJ +S1Rlc3RfSW50ZXJtZWRpYXRlQ0EuY2VyMCEGA1UdEQQaMBiBFnRob21hcy5sZW56 +QGVnaXouZ3YuYXQwHwYDVR0jBBgwFoAUaKJeEdreL4BrRES/jfplNoEkp28wDQYJ +KoZIhvcNAQEFBQADgYEAlFGjUxXLs7SAT8NtXSrv2WrjlklaRnHTFHLQwyVo8JWb +gvRkHHDUv2o8ofXUY2R2WJ38dxeDoccgbXrJb/Qhi8IY7YhCwv/TuIZDisyAqo8W +ORKSip/6HWlGCSR/Vgoet1GtCmF0FoUxFUIGSAuQ2yyt4fIzt5GJrU1X5ujjI1w= diff --git a/src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml b/src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml new file mode 100644 index 0000000..59a90cf --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml @@ -0,0 +1,30 @@ +https://testzustellsystem.egiz.gv.atzs-valid-delivery-request-idvalid-delivery-request-id12345ejvUI0yh/IIyauFe8x5ZonD/i5oznl8vFyS3oLNivzA=hmVZrLkMDbXaRLYQKOaV3OtK13TQgMu3csKyw9M4zWqNyva1yxnYkzoX3dKDOdc9 +O56yQJsjoA3Cuw7pXlGO7jSfVM77dTXbWSDaF95O9Vdsrmr7R6Uki0jA9SmgQLXg +hZAUG8JpsHcBn8M0L2BXADKjSn0LuMDL2L7dmU3EM7eRy+OvFwDrXDw1fhjQO6L2 +KoflAWLgUerDhJSpzr0+YfmkrjzitLUA7oIg8ieOnfGyql31ECmDJEqgnL78hyPZ +KaNZImDf3EWFs8je6mt+os1TwsyXYwz+GGbjoDR8lGTS9xVqnXdrgP8Jyv6p9FEu +0IYgSY2FlbI3skPZC8ZVXg==MIIEqzCCBBSgAwIBAgIHANux81oNezANBgkqhkiG9w0BAQUFADBAMSIwIAYDVQQD +ExlJQUlLIFRlc3QgSW50ZXJtZWRpYXRlIENBMQ0wCwYDVQQKEwRJQUlLMQswCQYD +VQQGEwJBVDAeFw0xMzA5MjcwNTMzMzdaFw0yMzA5MjcwNTMzMzdaMIHkMQswCQYD +VQQGEwJBVDENMAsGA1UEBxMER3JhejEmMCQGA1UEChMdR3JheiBVbml2ZXJzaXR5 +IG9mIFRlY2hub2xvZ3kxSDBGBgNVBAsTP0luc3RpdHV0ZSBmb3IgQXBwbGllZCBJ +bmZvcm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEUMBIGA1UE +BBMLTU9BLVNTIFRlc3QxGDAWBgNVBCoTD0VHSVogVGVzdHBvcnRhbDEkMCIGA1UE +AxMbRUdJWiBUZXN0cG9ydGFsIE1PQS1TUyBUZXN0MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAuDjOyf+mY+oQL2FQzzuaiC8C23vVKbq/n2Zi7BqSibZH +mtqMJfmj4pT+hWSNHvVvWsaxFcx4KeNqdCMzwnw1r4P3Sf+2o5uFku5KHEMLMokR +yYQG9VqY/KkB94ye7Pv6zT8gvKqxGFg96UamECep4swPaSZrA8AOER5WAtyGDzKI +Tz+a5zfFaTXDoba7f98PCWR96yKiFjVOhzp38WVz4VJgz+b8ZSY7Xsv5Kn7DXjOL +STX4MevFLki3rFPup3+4vGToaMBW3PEj67HXBdqR855Le6+E6rVxORqsXqlVwhsI +6nuS0CO2LWYmBNR1IB0mXteeYH/HfxvuZc+7yDjdPQIDAQABo4IBhDCCAYAwDgYD +VR0PAQH/BAQDAgbAMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFEmcH6VY4BG1EAGB +TLoNR9vH/g6yMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jYS5pYWlrLnR1Z3Jh +ei5hdC9jYXBzby9jcmxzL0lBSUtUZXN0X0ludGVybWVkaWF0ZUNBLmNybDCBqgYI +KwYBBQUHAQEEgZ0wgZowSgYIKwYBBQUHMAGGPmh0dHA6Ly9jYS5pYWlrLnR1Z3Jh +ei5hdC9jYXBzby9PQ1NQP2NhPUlBSUtUZXN0X0ludGVybWVkaWF0ZUNBMEwGCCsG +AQUFBzAChkBodHRwOi8vY2EuaWFpay50dWdyYXouYXQvY2Fwc28vY2VydHMvSUFJ +S1Rlc3RfSW50ZXJtZWRpYXRlQ0EuY2VyMCEGA1UdEQQaMBiBFnRob21hcy5sZW56 +QGVnaXouZ3YuYXQwHwYDVR0jBBgwFoAUaKJeEdreL4BrRES/jfplNoEkp28wDQYJ +KoZIhvcNAQEFBQADgYEAlFGjUxXLs7SAT8NtXSrv2WrjlklaRnHTFHLQwyVo8JWb +gvRkHHDUv2o8ofXUY2R2WJ38dxeDoccgbXrJb/Qhi8IY7YhCwv/TuIZDisyAqo8W +ORKSip/6HWlGCSR/Vgoet1GtCmF0FoUxFUIGSAuQ2yyt4fIzt5GJrU1X5ujjI1w= diff --git a/src/test/resources/at/gv/egiz/moazs/ITMsgClientTest/validDeliveryRequest.xml b/src/test/resources/at/gv/egiz/moazs/ITMsgClientTest/validDeliveryRequest.xml new file mode 100644 index 0000000..f1879eb --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMsgClientTest/validDeliveryRequest.xml @@ -0,0 +1,56 @@ + + + + + + kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= + urn:publicid:gv:at:cemtoken + + + Bundesministerium für Testzwecke + + + + + https://authority.gv.at/delivery_notification + + + + + + + Maxi + Mustermann1 + + 1984-01-24 + + + AT + 1010 + Wien + + Muststrasse + 10 + + + + + valid-delivery-request-id + WichtigeMitteilung + RSa + + + + brief.xml + text/xml + 123401 + + SHA1 + 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 + + https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 + + + \ No newline at end of file diff --git a/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/formallyIncorrectDeliveryRequest.soap b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/formallyIncorrectDeliveryRequest.soap new file mode 100644 index 0000000..0570005 --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/formallyIncorrectDeliveryRequest.soap @@ -0,0 +1,53 @@ + + + + + + SampleProfile2 + + + + + + Maxi + Mustermann1 + + 1984-01-24 + + + AT + 1010 + Wien + + Muststrasse + 10 + + + + + formally-incorrect-delivery-request-id + nonRSa + false + + + + + Hello There! + +

How are you

+

Nice to hear from you!

+

Regards, V

+ +
+
+ deckblatt +
+ + +
+
diff --git a/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingAppDeliveryId.soap b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingAppDeliveryId.soap new file mode 100644 index 0000000..e481caa --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingAppDeliveryId.soap @@ -0,0 +1,55 @@ + + + + + + + + kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= + urn:publicid:gv:at:cemtoken + + Bundesministerium für Testzwecke + + https://authority.gv.at/delivery_notification + + + + + Maxi + Mustermann1 + + 1984-01-24 + + + AT + 1010 + Wien + + Muststrasse + 10 + + + + + WichtigeMitteilung + RSa + + + https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 + brief.xml + text/xml + + SHA1 + 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 + + 123401 + + + + diff --git a/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingMetaData.soap b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingMetaData.soap new file mode 100644 index 0000000..cf55d6d --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingMetaData.soap @@ -0,0 +1,51 @@ + + + + + + + + kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= + urn:publicid:gv:at:cemtoken + + Bundesministerium für Testzwecke + + https://authority.gv.at/delivery_notification + + + + + Maxi + Mustermann1 + + 1984-01-24 + + + AT + 1010 + Wien + + Muststrasse + 10 + + + + + https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 + brief.xml + text/xml + + SHA1 + 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 + + 123401 + + + + diff --git a/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingSender.soap b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingSender.soap new file mode 100644 index 0000000..62cda34 --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/missingSender.soap @@ -0,0 +1,46 @@ + + + + + + + + Maxi + Mustermann1 + + 1984-01-24 + + + AT + 1010 + Wien + + Muststrasse + 10 + + + + + valid-delivery-request-id + WichtigeMitteilung + RSa + + + https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 + brief.xml + text/xml + + SHA1 + 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 + + 123401 + + + + diff --git a/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/profileAndCorporateBody.soap b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/profileAndCorporateBody.soap new file mode 100644 index 0000000..3e52062 --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/profileAndCorporateBody.soap @@ -0,0 +1,59 @@ + + + + + + + 132456 + + + + kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= + urn:publicid:gv:at:cemtoken + + Bundesministerium für Testzwecke + + https://authority.gv.at/delivery_notification + + + + + Maxi + Mustermann1 + + 1984-01-24 + + + AT + 1010 + Wien + + Muststrasse + 10 + + + + + valid-delivery-request-id + WichtigeMitteilung + RSa + + + https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 + brief.xml + text/xml + + SHA1 + 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 + + 123401 + + + + diff --git a/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/validDeliveryRequest.soap b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/validDeliveryRequest.soap new file mode 100644 index 0000000..519749c --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/ITMzsServiceTest/validDeliveryRequest.soap @@ -0,0 +1,56 @@ + + + + + + + + kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= + urn:publicid:gv:at:cemtoken + + Bundesministerium für Testzwecke + + https://authority.gv.at/delivery_notification + + + + + Maxi + Mustermann1 + + 1984-01-24 + + + AT + 1010 + Wien + + Muststrasse + 10 + + + + + valid-delivery-request-id + WichtigeMitteilung + RSa + + + https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 + brief.xml + text/xml + + SHA1 + 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 + + 123401 + + + + diff --git a/src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml b/src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml deleted file mode 100644 index b850145..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/invalid-signed-delivery-response.xml +++ /dev/null @@ -1,30 +0,0 @@ -https://testzustellsystem.egiz.gv.atmanipulated-delivery-idmanipulated-delivery-request-id00000ejvUI0yh/IIyauFe8x5ZonD/i5oznl8vFyS3oLNivzA=hmVZrLkMDbXaRLYQKOaV3OtK13TQgMu3csKyw9M4zWqNyva1yxnYkzoX3dKDOdc9 -O56yQJsjoA3Cuw7pXlGO7jSfVM77dTXbWSDaF95O9Vdsrmr7R6Uki0jA9SmgQLXg -hZAUG8JpsHcBn8M0L2BXADKjSn0LuMDL2L7dmU3EM7eRy+OvFwDrXDw1fhjQO6L2 -KoflAWLgUerDhJSpzr0+YfmkrjzitLUA7oIg8ieOnfGyql31ECmDJEqgnL78hyPZ -KaNZImDf3EWFs8je6mt+os1TwsyXYwz+GGbjoDR8lGTS9xVqnXdrgP8Jyv6p9FEu -0IYgSY2FlbI3skPZC8ZVXg==MIIEqzCCBBSgAwIBAgIHANux81oNezANBgkqhkiG9w0BAQUFADBAMSIwIAYDVQQD -ExlJQUlLIFRlc3QgSW50ZXJtZWRpYXRlIENBMQ0wCwYDVQQKEwRJQUlLMQswCQYD -VQQGEwJBVDAeFw0xMzA5MjcwNTMzMzdaFw0yMzA5MjcwNTMzMzdaMIHkMQswCQYD -VQQGEwJBVDENMAsGA1UEBxMER3JhejEmMCQGA1UEChMdR3JheiBVbml2ZXJzaXR5 -IG9mIFRlY2hub2xvZ3kxSDBGBgNVBAsTP0luc3RpdHV0ZSBmb3IgQXBwbGllZCBJ -bmZvcm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEUMBIGA1UE -BBMLTU9BLVNTIFRlc3QxGDAWBgNVBCoTD0VHSVogVGVzdHBvcnRhbDEkMCIGA1UE -AxMbRUdJWiBUZXN0cG9ydGFsIE1PQS1TUyBUZXN0MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAuDjOyf+mY+oQL2FQzzuaiC8C23vVKbq/n2Zi7BqSibZH -mtqMJfmj4pT+hWSNHvVvWsaxFcx4KeNqdCMzwnw1r4P3Sf+2o5uFku5KHEMLMokR -yYQG9VqY/KkB94ye7Pv6zT8gvKqxGFg96UamECep4swPaSZrA8AOER5WAtyGDzKI -Tz+a5zfFaTXDoba7f98PCWR96yKiFjVOhzp38WVz4VJgz+b8ZSY7Xsv5Kn7DXjOL -STX4MevFLki3rFPup3+4vGToaMBW3PEj67HXBdqR855Le6+E6rVxORqsXqlVwhsI -6nuS0CO2LWYmBNR1IB0mXteeYH/HfxvuZc+7yDjdPQIDAQABo4IBhDCCAYAwDgYD -VR0PAQH/BAQDAgbAMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFEmcH6VY4BG1EAGB -TLoNR9vH/g6yMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jYS5pYWlrLnR1Z3Jh -ei5hdC9jYXBzby9jcmxzL0lBSUtUZXN0X0ludGVybWVkaWF0ZUNBLmNybDCBqgYI -KwYBBQUHAQEEgZ0wgZowSgYIKwYBBQUHMAGGPmh0dHA6Ly9jYS5pYWlrLnR1Z3Jh -ei5hdC9jYXBzby9PQ1NQP2NhPUlBSUtUZXN0X0ludGVybWVkaWF0ZUNBMEwGCCsG -AQUFBzAChkBodHRwOi8vY2EuaWFpay50dWdyYXouYXQvY2Fwc28vY2VydHMvSUFJ -S1Rlc3RfSW50ZXJtZWRpYXRlQ0EuY2VyMCEGA1UdEQQaMBiBFnRob21hcy5sZW56 -QGVnaXouZ3YuYXQwHwYDVR0jBBgwFoAUaKJeEdreL4BrRES/jfplNoEkp28wDQYJ -KoZIhvcNAQEFBQADgYEAlFGjUxXLs7SAT8NtXSrv2WrjlklaRnHTFHLQwyVo8JWb -gvRkHHDUv2o8ofXUY2R2WJ38dxeDoccgbXrJb/Qhi8IY7YhCwv/TuIZDisyAqo8W -ORKSip/6HWlGCSR/Vgoet1GtCmF0FoUxFUIGSAuQ2yyt4fIzt5GJrU1X5ujjI1w= diff --git a/src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml b/src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml deleted file mode 100644 index 59a90cf..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MoaSPSSSignatureVerifierTest/valid-signed-delivery-response.xml +++ /dev/null @@ -1,30 +0,0 @@ -https://testzustellsystem.egiz.gv.atzs-valid-delivery-request-idvalid-delivery-request-id12345ejvUI0yh/IIyauFe8x5ZonD/i5oznl8vFyS3oLNivzA=hmVZrLkMDbXaRLYQKOaV3OtK13TQgMu3csKyw9M4zWqNyva1yxnYkzoX3dKDOdc9 -O56yQJsjoA3Cuw7pXlGO7jSfVM77dTXbWSDaF95O9Vdsrmr7R6Uki0jA9SmgQLXg -hZAUG8JpsHcBn8M0L2BXADKjSn0LuMDL2L7dmU3EM7eRy+OvFwDrXDw1fhjQO6L2 -KoflAWLgUerDhJSpzr0+YfmkrjzitLUA7oIg8ieOnfGyql31ECmDJEqgnL78hyPZ -KaNZImDf3EWFs8je6mt+os1TwsyXYwz+GGbjoDR8lGTS9xVqnXdrgP8Jyv6p9FEu -0IYgSY2FlbI3skPZC8ZVXg==MIIEqzCCBBSgAwIBAgIHANux81oNezANBgkqhkiG9w0BAQUFADBAMSIwIAYDVQQD -ExlJQUlLIFRlc3QgSW50ZXJtZWRpYXRlIENBMQ0wCwYDVQQKEwRJQUlLMQswCQYD -VQQGEwJBVDAeFw0xMzA5MjcwNTMzMzdaFw0yMzA5MjcwNTMzMzdaMIHkMQswCQYD -VQQGEwJBVDENMAsGA1UEBxMER3JhejEmMCQGA1UEChMdR3JheiBVbml2ZXJzaXR5 -IG9mIFRlY2hub2xvZ3kxSDBGBgNVBAsTP0luc3RpdHV0ZSBmb3IgQXBwbGllZCBJ -bmZvcm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEUMBIGA1UE -BBMLTU9BLVNTIFRlc3QxGDAWBgNVBCoTD0VHSVogVGVzdHBvcnRhbDEkMCIGA1UE -AxMbRUdJWiBUZXN0cG9ydGFsIE1PQS1TUyBUZXN0MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAuDjOyf+mY+oQL2FQzzuaiC8C23vVKbq/n2Zi7BqSibZH -mtqMJfmj4pT+hWSNHvVvWsaxFcx4KeNqdCMzwnw1r4P3Sf+2o5uFku5KHEMLMokR -yYQG9VqY/KkB94ye7Pv6zT8gvKqxGFg96UamECep4swPaSZrA8AOER5WAtyGDzKI -Tz+a5zfFaTXDoba7f98PCWR96yKiFjVOhzp38WVz4VJgz+b8ZSY7Xsv5Kn7DXjOL -STX4MevFLki3rFPup3+4vGToaMBW3PEj67HXBdqR855Le6+E6rVxORqsXqlVwhsI -6nuS0CO2LWYmBNR1IB0mXteeYH/HfxvuZc+7yDjdPQIDAQABo4IBhDCCAYAwDgYD -VR0PAQH/BAQDAgbAMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFEmcH6VY4BG1EAGB -TLoNR9vH/g6yMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jYS5pYWlrLnR1Z3Jh -ei5hdC9jYXBzby9jcmxzL0lBSUtUZXN0X0ludGVybWVkaWF0ZUNBLmNybDCBqgYI -KwYBBQUHAQEEgZ0wgZowSgYIKwYBBQUHMAGGPmh0dHA6Ly9jYS5pYWlrLnR1Z3Jh -ei5hdC9jYXBzby9PQ1NQP2NhPUlBSUtUZXN0X0ludGVybWVkaWF0ZUNBMEwGCCsG -AQUFBzAChkBodHRwOi8vY2EuaWFpay50dWdyYXouYXQvY2Fwc28vY2VydHMvSUFJ -S1Rlc3RfSW50ZXJtZWRpYXRlQ0EuY2VyMCEGA1UdEQQaMBiBFnRob21hcy5sZW56 -QGVnaXouZ3YuYXQwHwYDVR0jBBgwFoAUaKJeEdreL4BrRES/jfplNoEkp28wDQYJ -KoZIhvcNAQEFBQADgYEAlFGjUxXLs7SAT8NtXSrv2WrjlklaRnHTFHLQwyVo8JWb -gvRkHHDUv2o8ofXUY2R2WJ38dxeDoccgbXrJb/Qhi8IY7YhCwv/TuIZDisyAqo8W -ORKSip/6HWlGCSR/Vgoet1GtCmF0FoUxFUIGSAuQ2yyt4fIzt5GJrU1X5ujjI1w= diff --git a/src/test/resources/at/gv/egiz/moazs/MsgClientTest/validDeliveryRequest.xml b/src/test/resources/at/gv/egiz/moazs/MsgClientTest/validDeliveryRequest.xml deleted file mode 100644 index f1879eb..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MsgClientTest/validDeliveryRequest.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= - urn:publicid:gv:at:cemtoken - - - Bundesministerium für Testzwecke - - - - - https://authority.gv.at/delivery_notification - - - - - - - Maxi - Mustermann1 - - 1984-01-24 - - - AT - 1010 - Wien - - Muststrasse - 10 - - - - - valid-delivery-request-id - WichtigeMitteilung - RSa - - - - brief.xml - text/xml - 123401 - - SHA1 - 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 - - https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 - - - \ No newline at end of file diff --git a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/formallyIncorrectDeliveryRequest.soap b/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/formallyIncorrectDeliveryRequest.soap deleted file mode 100644 index 0570005..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/formallyIncorrectDeliveryRequest.soap +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - SampleProfile2 - - - - - - Maxi - Mustermann1 - - 1984-01-24 - - - AT - 1010 - Wien - - Muststrasse - 10 - - - - - formally-incorrect-delivery-request-id - nonRSa - false - - - - - Hello There! - -

How are you

-

Nice to hear from you!

-

Regards, V

- -
-
- deckblatt -
- - -
-
diff --git a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingAppDeliveryId.soap b/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingAppDeliveryId.soap deleted file mode 100644 index e481caa..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingAppDeliveryId.soap +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= - urn:publicid:gv:at:cemtoken - - Bundesministerium für Testzwecke - - https://authority.gv.at/delivery_notification - - - - - Maxi - Mustermann1 - - 1984-01-24 - - - AT - 1010 - Wien - - Muststrasse - 10 - - - - - WichtigeMitteilung - RSa - - - https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 - brief.xml - text/xml - - SHA1 - 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 - - 123401 - - - - diff --git a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingMetaData.soap b/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingMetaData.soap deleted file mode 100644 index cf55d6d..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingMetaData.soap +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= - urn:publicid:gv:at:cemtoken - - Bundesministerium für Testzwecke - - https://authority.gv.at/delivery_notification - - - - - Maxi - Mustermann1 - - 1984-01-24 - - - AT - 1010 - Wien - - Muststrasse - 10 - - - - - https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 - brief.xml - text/xml - - SHA1 - 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 - - 123401 - - - - diff --git a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingSender.soap b/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingSender.soap deleted file mode 100644 index 62cda34..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/missingSender.soap +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - Maxi - Mustermann1 - - 1984-01-24 - - - AT - 1010 - Wien - - Muststrasse - 10 - - - - - valid-delivery-request-id - WichtigeMitteilung - RSa - - - https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 - brief.xml - text/xml - - SHA1 - 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 - - 123401 - - - - diff --git a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/profileAndCorporateBody.soap b/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/profileAndCorporateBody.soap deleted file mode 100644 index 3e52062..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/profileAndCorporateBody.soap +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - 132456 - - - - kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= - urn:publicid:gv:at:cemtoken - - Bundesministerium für Testzwecke - - https://authority.gv.at/delivery_notification - - - - - Maxi - Mustermann1 - - 1984-01-24 - - - AT - 1010 - Wien - - Muststrasse - 10 - - - - - valid-delivery-request-id - WichtigeMitteilung - RSa - - - https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 - brief.xml - text/xml - - SHA1 - 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 - - 123401 - - - - diff --git a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/validDeliveryRequest.soap b/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/validDeliveryRequest.soap deleted file mode 100644 index 519749c..0000000 --- a/src/test/resources/at/gv/egiz/moazs/MzsServiceTest/validDeliveryRequest.soap +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - kkvj693+tw99uW8UPuEK9en1LzZItkylPajkUUyJJDWQB78VGPkAuhCEk+TD12yQDD/WRglsf+JfQpjubIs/4l/ptluJ9teF3nwkNlu5Dm7mIjzgW1qxrDyomCmPvVxTWOCBuMUbOWRZBhOq+KvDQAu9Vv9KnqSfjYeDZrpHYu4= - urn:publicid:gv:at:cemtoken - - Bundesministerium für Testzwecke - - https://authority.gv.at/delivery_notification - - - - - Maxi - Mustermann1 - - 1984-01-24 - - - AT - 1010 - Wien - - Muststrasse - 10 - - - - - valid-delivery-request-id - WichtigeMitteilung - RSa - - - https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3 - brief.xml - text/xml - - SHA1 - 9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6 - - 123401 - - - - -- cgit v1.2.3