aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java')
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java91
1 files changed, 86 insertions, 5 deletions
diff --git a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java
index cdbe5ab..ebbc334 100644
--- a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java
+++ b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java
@@ -11,6 +11,7 @@ import java.io.IOException;
import java.util.Collections;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.RandomStringUtils;
@@ -19,21 +20,30 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.MOAException;
import at.gv.egovernment.moa.spss.api.common.InputData;
+import at.gv.egovernment.moa.spss.api.xmlbind.CreateXMLSignatureRequestParser;
+import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest;
+import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse;
+import at.gv.egovernment.moa.spss.api.xmlsign.SignatureEnvironmentResponse;
import at.gv.egovernment.moa.spss.api.xmlverify.AdESFormResults;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureResponse;
import at.gv.egovernment.moa.spss.server.config.ConfigurationException;
import at.gv.egovernment.moa.spss.server.init.SystemInitializer;
+import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureCreationInvoker;
import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureVerificationInvoker;
+import at.gv.egovernment.moaspss.util.DOMUtils;
@RunWith(BlockJUnit4ClassRunner.class)
public class XadesIntegrationTest extends AbstractIntegrationTest {
- XMLSignatureVerificationInvoker xadesInvoker;
+ XMLSignatureVerificationInvoker xadesVerifyInvoker;
+ XMLSignatureCreationInvoker xadesSignInvoker;
@BeforeClass
public static void classInitializer() throws IOException, ConfigurationException,
@@ -49,7 +59,8 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
@Before
public void initializer() throws ConfigurationException {
- xadesInvoker = XMLSignatureVerificationInvoker.getInstance();
+ xadesVerifyInvoker = XMLSignatureVerificationInvoker.getInstance();
+ xadesSignInvoker = XMLSignatureCreationInvoker.getInstance();
setUpContexts(RandomStringUtils.randomAlphabetic(10));
}
@@ -66,7 +77,7 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
null, Collections.emptyMap());
// perform test
- final MOAException error = assertThrows(MOAException.class, () -> xadesInvoker.verifyXMLSignature(
+ final MOAException error = assertThrows(MOAException.class, () -> xadesVerifyInvoker.verifyXMLSignature(
request));
assertEquals("wrong errorCode", "2203", error.getMessageId());
@@ -83,7 +94,7 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
null, Collections.emptyMap());
// perform test
- final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -116,7 +127,7 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
null, Collections.emptyMap());
// perform test
- final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -155,5 +166,75 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
}
+
+ @Test
+ public void simpleXmlSignature() throws MOAException, ParserConfigurationException, SAXException, IOException, TransformerException {
+ // build request
+ Element xml = DOMUtils.parseXmlNonValidating(
+ CadesIntegrationTest.class.getResourceAsStream("/testdata/xades/sign/createXades_1.xml"));
+ CreateXMLSignatureRequest xmlReq = new CreateXMLSignatureRequestParser().parse(xml);
+
+ // create signature
+ CreateXMLSignatureResponse xmlResp = xadesSignInvoker.createXMLSignature(xmlReq, Collections.EMPTY_SET);
+
+
+ // verify response
+ assertNotNull("xadesResp", xmlResp);
+ assertNotNull("xadesResp elements", xmlResp.getResponseElements());
+ assertFalse("xadesResp elements", xmlResp.getResponseElements().isEmpty());
+
+ SignatureEnvironmentResponse signedXml = (SignatureEnvironmentResponse) xmlResp.getResponseElements().get(0);
+ assertNotNull("signed xml", signedXml.getSignatureEnvironment());
+
+
+ // verify signature
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(
+ DOMUtils.serializeNode(signedXml.getSignatureEnvironment()).getBytes(),
+ "jUnitSigning", false, null, DEFAULT_XPATH_SIGNATURE_LOCATION, null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 0, result.getCertificateCheck().getCode());
+
+ }
+ @Test
+ public void simpleXadesSignature() throws MOAException, ParserConfigurationException, SAXException, IOException, TransformerException {
+ // build request
+ Element xml = DOMUtils.parseXmlNonValidating(
+ CadesIntegrationTest.class.getResourceAsStream("/testdata/xades/sign/createXades_2.xml"));
+ CreateXMLSignatureRequest xmlReq = new CreateXMLSignatureRequestParser().parse(xml);
+
+ // create signature
+ CreateXMLSignatureResponse xmlResp = xadesSignInvoker.createXMLSignature(xmlReq, Collections.EMPTY_SET);
+
+
+ // verify response
+ assertNotNull("xadesResp", xmlResp);
+ assertNotNull("xadesResp elements", xmlResp.getResponseElements());
+ assertFalse("xadesResp elements", xmlResp.getResponseElements().isEmpty());
+
+ SignatureEnvironmentResponse signedXml = (SignatureEnvironmentResponse) xmlResp.getResponseElements().get(0);
+ assertNotNull("signed xml", signedXml.getSignatureEnvironment());
+
+
+ // verify signature
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(
+ DOMUtils.serializeNode(signedXml.getSignatureEnvironment()).getBytes(),
+ "jUnitSigning", false, null, DEFAULT_XPATH_SIGNATURE_LOCATION, null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 0, result.getCertificateCheck().getCode());
+
+ }
+
}