aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/PadesIntegrationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/PadesIntegrationTest.java')
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/PadesIntegrationTest.java156
1 files changed, 59 insertions, 97 deletions
diff --git a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/PadesIntegrationTest.java b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/PadesIntegrationTest.java
index b17e2c7..fd5b278 100644
--- a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/PadesIntegrationTest.java
+++ b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/PadesIntegrationTest.java
@@ -7,14 +7,12 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.Before;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
@@ -23,165 +21,129 @@ import at.gv.egovernment.moa.spss.MOAException;
import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureRequest;
import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponse;
import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponseElement;
-import at.gv.egovernment.moa.spss.api.impl.VerifyCMSSignatureRequestImpl;
import at.gv.egovernment.moa.spss.api.xmlverify.AdESFormResults;
import at.gv.egovernment.moa.spss.server.config.ConfigurationException;
-import at.gv.egovernment.moa.spss.server.init.StartupConfigurationHolder;
import at.gv.egovernment.moa.spss.server.init.SystemInitializer;
import at.gv.egovernment.moa.spss.server.invoke.CMSSignatureVerificationInvoker;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
-import at.gv.egovernment.moaspss.logging.LoggingContext;
-import at.gv.egovernment.moaspss.logging.LoggingContextManager;
@RunWith(BlockJUnit4ClassRunner.class)
-public class PadesIntegrationTest {
+public class PadesIntegrationTest extends AbstractIntegrationTest {
- private static StartupConfigurationHolder moaSpssCore;
CMSSignatureVerificationInvoker cadesInvoker;
-
+
@BeforeClass
- public static void classInitializer() throws IOException {
+ public static void classInitializer() throws IOException, ConfigurationException,
+ NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ jvmStateReset();
+
final String current = new java.io.File(".").getCanonicalPath();
System.setProperty("moa.spss.server.configuration",
- current + "/src/test/resources/moaspss_config/MOASPSSConfiguration.xml");
+ current + "/src/test/resources/moaspss_config/MOASPSSConfiguration.xml");
moaSpssCore = SystemInitializer.init();
-
+
}
-
+
@Before
public void initializer() throws ConfigurationException {
cadesInvoker = CMSSignatureVerificationInvoker.getInstance();
setUpContexts(RandomStringUtils.randomAlphabetic(10));
-
+
}
-
+
@Test
public void missingTrustProfile() throws IOException {
- VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
- org.apache.commons.codec.binary.Base64.decodeBase64(IOUtils.resourceToByteArray("/testdata/pades/testpdf.b64")),
- RandomStringUtils.randomAlphabetic(5),
- true,
+ final VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
+ org.apache.commons.codec.binary.Base64.decodeBase64(IOUtils.resourceToByteArray(
+ "/testdata/pades/testpdf.b64")),
+ RandomStringUtils.randomAlphabetic(5),
+ true,
false);
-
+
// perform test
- MOAException error = assertThrows(MOAException.class,() -> cadesInvoker.verifyCMSSignature(request));
+ final MOAException error = assertThrows(MOAException.class, () -> cadesInvoker.verifyCMSSignature(
+ request));
assertEquals("wrong errorCode", "2203", error.getMessageId());
-
+
}
-
+
@Test
- public void basicValidationCadesSignature() throws MOAException, IOException {
- VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
- org.apache.commons.codec.binary.Base64.decodeBase64(IOUtils.resourceToByteArray("/testdata/pades/testpdf.b64")),
- "MOAIDBuergerkarteAuthentisierungsDaten",
- true,
+ public void basicValidationCadesSignature() throws MOAException, IOException {
+ final VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
+ org.apache.commons.codec.binary.Base64.decodeBase64(IOUtils.resourceToByteArray(
+ "/testdata/pades/testpdf.b64")),
+ "MOAIDBuergerkarteAuthentisierungsDaten",
+ true,
false);
-
+
// perform test
- VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
-
+ final VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
+
// verify result
assertNotNull("verification result", result);
assertEquals("wrong result size", 1, result.getResponseElements().size());
-
- VerifyCMSSignatureResponseElement cmsResult = (VerifyCMSSignatureResponseElement) result.getResponseElements().get(0);
+
+ final VerifyCMSSignatureResponseElement cmsResult = (VerifyCMSSignatureResponseElement) result
+ .getResponseElements().get(0);
assertEquals("sigCode", 1, cmsResult.getSignatureCheck().getCode());
assertEquals("certCode", 1, cmsResult.getCertificateCheck().getCode());
-
+
assertNotNull("signerInfo", cmsResult.getSignerInfo());
assertEquals("issuerCC", "EE", cmsResult.getSignerInfo().getIssuerCountryCode());
assertFalse("publicAuthority", cmsResult.getSignerInfo().isPublicAuthority());
assertTrue("QC", cmsResult.getSignerInfo().isQualifiedCertificate());
- assertTrue("SSCD", cmsResult.getSignerInfo().isSSCD());
+ assertTrue("SSCD", cmsResult.getSignerInfo().isSSCD());
assertNull("TSL infos", cmsResult.getSignerInfo().getTslInfos());
-
+
assertNull("form val. result", cmsResult.getAdESFormResults());
assertNull("extended val. result", cmsResult.getExtendedCertificateCheck());
assertNull("byteRange", cmsResult.getByteRangeOfSignature());
assertNull("used sig alg", cmsResult.getSignatureAlgorithm());
-
+
}
-
+
@Test
- public void extendedValidationCadesSignature() throws MOAException, IOException {
- VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
- org.apache.commons.codec.binary.Base64.decodeBase64(IOUtils.resourceToByteArray("/testdata/pades/testpdf.b64")),
- "MOAIDBuergerkarteAuthentisierungsDaten",
- true,
+ public void extendedValidationCadesSignature() throws MOAException, IOException {
+ final VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
+ org.apache.commons.codec.binary.Base64.decodeBase64(IOUtils.resourceToByteArray(
+ "/testdata/pades/testpdf.b64")),
+ "MOAIDBuergerkarteAuthentisierungsDaten",
+ true,
true);
-
+
// perform test
- VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
-
+ final VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
+
// verify result
assertNotNull("verification result", result);
assertEquals("wrong result size", 1, result.getResponseElements().size());
-
- VerifyCMSSignatureResponseElement cmsResult = (VerifyCMSSignatureResponseElement) result.getResponseElements().get(0);
+
+ final VerifyCMSSignatureResponseElement cmsResult = (VerifyCMSSignatureResponseElement) result
+ .getResponseElements().get(0);
assertEquals("sigCode", 1, cmsResult.getSignatureCheck().getCode());
assertEquals("certCode", 1, cmsResult.getCertificateCheck().getCode());
-
+
assertNotNull("signerInfo", cmsResult.getSignerInfo());
assertEquals("issuerCC", "EE", cmsResult.getSignerInfo().getIssuerCountryCode());
assertFalse("publicAuthority", cmsResult.getSignerInfo().isPublicAuthority());
assertTrue("QC", cmsResult.getSignerInfo().isQualifiedCertificate());
- assertTrue("SSCD", cmsResult.getSignerInfo().isSSCD());
+ assertTrue("SSCD", cmsResult.getSignerInfo().isSSCD());
assertNull("TSL infos", cmsResult.getSignerInfo().getTslInfos());
-
+
assertNotNull("form val. result", cmsResult.getAdESFormResults());
assertEquals("form val. result size", 4, cmsResult.getAdESFormResults().size());
- for (Object el : cmsResult.getAdESFormResults()) {
- AdESFormResults test = ((AdESFormResults)el);
+ for (final Object el : cmsResult.getAdESFormResults()) {
+ final AdESFormResults test = (AdESFormResults) el;
assertEquals("Find wrong form val status", 1, test.getCode().longValue());
-
+
}
-
+
assertNotNull("extended val. result", cmsResult.getExtendedCertificateCheck());
assertEquals("ext. val major", 2, cmsResult.getExtendedCertificateCheck().getMajorCode());
assertEquals("ext. val major", 24, cmsResult.getExtendedCertificateCheck().getMinorCode());
-
- assertNotNull("byteRange", cmsResult.getByteRangeOfSignature());
+
+ assertNotNull("byteRange", cmsResult.getByteRangeOfSignature());
assertEquals("used sig alg", "SHA1withRSA", cmsResult.getSignatureAlgorithm());
-
- }
-
- private VerifyCMSSignatureRequest buildVerfifyCmsRequest(final byte[] signature,
- final String trustProfileID, final boolean isPdfSignature,
- final boolean performExtendedValidation) {
- final VerifyCMSSignatureRequestImpl verifyCmsSignatureRequest =
- new VerifyCMSSignatureRequestImpl();
- verifyCmsSignatureRequest.setDateTime(null);
- verifyCmsSignatureRequest.setCMSSignature(new ByteArrayInputStream(signature));
- verifyCmsSignatureRequest.setDataObject(null);
- verifyCmsSignatureRequest.setTrustProfileId(trustProfileID);
- verifyCmsSignatureRequest.setSignatories(VerifyCMSSignatureRequest.ALL_SIGNATORIES);
- verifyCmsSignatureRequest.setPDF(isPdfSignature);
- verifyCmsSignatureRequest.setExtended(performExtendedValidation);
- return verifyCmsSignatureRequest;
}
-
- protected final void setUpContexts(final String transactionID) throws ConfigurationException {
- final TransactionContextManager txMgr = TransactionContextManager.getInstance();
- final LoggingContextManager logMgr = LoggingContextManager.getInstance();
-
- if (txMgr.getTransactionContext() == null) {
- final TransactionContext ctx =
- new TransactionContext(transactionID, null, moaSpssCore.getMoaSpssConfig());
- txMgr.setTransactionContext(ctx);
-
- }
- //set Logging context into MOA-Sig
- if (logMgr.getLoggingContext() == null) {
- final LoggingContext ctx = new LoggingContext(transactionID);
- logMgr.setLoggingContext(ctx);
-
- }
-
- //new IaikConfigurator().configure(moaSigConfig.getMoaSigConfig());
-
- }
-
}