aboutsummaryrefslogtreecommitdiff
path: root/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java')
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java336
1 files changed, 0 insertions, 336 deletions
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java
deleted file mode 100644
index ea163e61..00000000
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java
+++ /dev/null
@@ -1,336 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.utils;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.apache.commons.lang3.RandomStringUtils;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.opensaml.core.config.InitializationException;
-import org.opensaml.core.xml.io.Unmarshaller;
-import org.opensaml.core.xml.io.UnmarshallingException;
-import org.opensaml.core.xml.util.XMLObjectSupport;
-import org.opensaml.saml.saml2.core.AuthnRequest;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.mock.web.MockHttpServletResponse;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.annotation.DirtiesContext.ClassMode;
-import org.springframework.test.context.ActiveProfiles;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.web.WebAppConfiguration;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
-
-import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
-import at.asitplus.eidas.specific.core.config.ServiceProviderConfiguration;
-import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
-import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
-import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl;
-import at.gv.egiz.eaaf.core.impl.idp.module.test.TestRequestImpl;
-import at.gv.egiz.eaaf.core.impl.utils.DomUtils;
-import at.gv.egiz.eaaf.modules.pvp2.api.validation.IAuthnRequestPostProcessor;
-import at.gv.egiz.eaaf.modules.pvp2.idp.impl.PvpSProfilePendingRequest;
-import at.gv.egiz.eaaf.modules.pvp2.impl.opensaml.initialize.EaafOpenSaml3xInitializer;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration({
- "/applicationContext.xml",
- "/spring/SpringTest_connector.beans.xml",
- "/eaaf_core.beans.xml",
- "/eaaf_pvp.beans.xml",
- "/eaaf_pvp_idp.beans.xml",
- "/spring/SpringTest-context_simple_storage.xml"})
-@ActiveProfiles(profiles = {"deprecatedConfig"})
-@WebAppConfiguration
-@DirtiesContext(classMode = ClassMode.BEFORE_CLASS)
-public class AuthnRequestValidatorTest {
-
- @Autowired private IConfigurationWithSP basicConfig;
- @Autowired protected IAuthnRequestPostProcessor authRequestValidator;
-
- private MockHttpServletRequest httpReq;
- private MockHttpServletResponse httpResp;
- private PvpSProfilePendingRequest pendingReq;
-
- /**
- * jUnit class initializer.
- * @throws ComponentInitializationException In case of an error
- * @throws InitializationException In case of an error
- *
- */
- @BeforeClass
- public static void classInitializer() throws InitializationException, ComponentInitializationException {
- final String current = new java.io.File(".").toURI().toString();
- System.setProperty("eidas.ms.configuration", current + "src/test/resources/config/junit_config_1.properties");
-
- EaafOpenSaml3xInitializer.eaafInitialize();
- }
-
- /**
- * jUnit test set-up.
- * @throws EaafException
- *
- */
- @Before
- public void initialize() throws EaafException {
- httpReq = new MockHttpServletRequest("POST", "https://localhost/ms_connector");
- httpResp = new MockHttpServletResponse();
- RequestContextHolder.resetRequestAttributes();
- RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(httpReq, httpResp));
-
- Map<String, String> spConfig = new HashMap<>();
- spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, RandomStringUtils.randomAlphabetic(10));
-
- pendingReq = new PvpSProfilePendingRequest();
- pendingReq.initialize(httpReq, basicConfig);
- pendingReq.setPendingRequestId(RandomStringUtils.randomAlphanumeric(10));
- pendingReq.setOnlineApplicationConfiguration(new ServiceProviderConfiguration(spConfig, basicConfig));
- ((RequestImpl)pendingReq).setUniqueTransactionIdentifier(null);
-
- }
-
- @Test
- public void loaLowRequested() throws AuthnRequestValidatorException, ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_1.xml");
-
- //test
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
-
- //validate
- Assert.assertNotNull("spEntityId is null", pendingReq.getRawData(MsEidasNodeConstants.DATA_REQUESTERID));
- Assert.assertEquals("SP EntityId not match",
- "https://demo.egiz.gv.at/demoportal-openID_demo",
- pendingReq.getRawData(MsEidasNodeConstants.DATA_REQUESTERID));
-
- Assert.assertNotNull("SP ProviderName is null", pendingReq.getRawData(MsEidasNodeConstants.DATA_PROVIDERNAME));
- Assert.assertEquals("SP ProviderName not match",
- "OpenID Connect Demo",
- pendingReq.getRawData(MsEidasNodeConstants.DATA_PROVIDERNAME));
-
- Assert.assertNotNull("Requested SP LoA is null",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA());
- Assert.assertFalse("Requested SP LoA is null",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().isEmpty());
- Assert.assertEquals("SP LoA count not match", 1,
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().size());
- Assert.assertEquals("SP LoA not match",
- "http://eidas.europa.eu/LoA/substantial",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().get(0));
-
- Assert.assertNotNull("bPK Target is null",
- pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier());
- Assert.assertEquals("bPK target not match", "urn:publicid:gv.at:cdid+BF",
- pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier());
-
- Assert.assertNull("wrong transactionId", pendingReq.getUniqueTransactionIdentifier());
-
- }
-
- @Test
- public void loaSubstentialRequested() throws AuthnRequestValidatorException, ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_2.xml");
-
- //test
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
-
- //validate
- Assert.assertNotNull("spEntityId is null", pendingReq.getRawData(MsEidasNodeConstants.DATA_REQUESTERID));
- Assert.assertEquals("SP EntityId not match",
- "https://demo.egiz.gv.at/demoportal-openID_demo",
- pendingReq.getRawData(MsEidasNodeConstants.DATA_REQUESTERID));
-
- Assert.assertNotNull("SP ProviderName is null", pendingReq.getRawData(MsEidasNodeConstants.DATA_PROVIDERNAME));
- Assert.assertEquals("SP ProviderName not match",
- "OpenID Connect Demo",
- pendingReq.getRawData(MsEidasNodeConstants.DATA_PROVIDERNAME));
-
- Assert.assertNotNull("Requested SP LoA is null",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA());
- Assert.assertFalse("Requested SP LoA is null",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().isEmpty());
- Assert.assertEquals("SP LoA count not match", 1,
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().size());
- Assert.assertEquals("SP LoA not match",
- "http://eidas.europa.eu/LoA/substantial",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().get(0));
-
- Assert.assertNotNull("bPK Target is null",
- pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier());
- Assert.assertEquals("bPK target not match", "urn:publicid:gv.at:cdid+BF",
- pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier());
-
- Assert.assertNull("wrong transactionId", pendingReq.getUniqueTransactionIdentifier());
-
- }
-
- @Test
- public void loaHighRequested() throws AuthnRequestValidatorException, ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_3.xml");
-
- //test
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
-
- //validate
- Assert.assertNotNull("spEntityId is null", pendingReq.getRawData(MsEidasNodeConstants.DATA_REQUESTERID));
- Assert.assertEquals("SP EntityId not match",
- "https://demo.egiz.gv.at/demoportal-openID_demo",
- pendingReq.getRawData(MsEidasNodeConstants.DATA_REQUESTERID));
-
- Assert.assertNotNull("SP ProviderName is null", pendingReq.getRawData(MsEidasNodeConstants.DATA_PROVIDERNAME));
- Assert.assertEquals("SP ProviderName not match",
- "OpenID Connect Demo",
- pendingReq.getRawData(MsEidasNodeConstants.DATA_PROVIDERNAME));
-
- Assert.assertNotNull("Requested SP LoA is null",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA());
- Assert.assertFalse("Requested SP LoA is null",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().isEmpty());
- Assert.assertEquals("SP LoA count not match", 1,
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().size());
- Assert.assertEquals("SP LoA not match",
- "http://eidas.europa.eu/LoA/high",
- pendingReq.getServiceProviderConfiguration().getRequiredLoA().get(0));
-
- Assert.assertNotNull("bPK Target is null",
- pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier());
- Assert.assertEquals("bPK target not match", "urn:publicid:gv.at:cdid+XX",
- pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier());
-
- Assert.assertEquals("wrong transactionId", "transId_11223344556677aabbcc",
- pendingReq.getUniqueTransactionIdentifier());
-
- Assert.assertEquals("wrong binding pubkey", "binding_pubKey_1144225247125dsfasfasdf",
- pendingReq.getRawData(MsEidasNodeConstants.EID_BINDING_PUBLIC_KEY_NAME, String.class));
-
-
-
- }
-
- @Test
- public void transactionIdWrongPendingReqType() throws AuthnRequestValidatorException, ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
-
- Map<String, String> spConfig = new HashMap<>();
- spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, RandomStringUtils.randomAlphabetic(10));
-
- TestRequestImpl pendingReqLocal = new TestRequestImpl();
- pendingReqLocal.setPendingReqId(RandomStringUtils.randomAlphanumeric(10));
- pendingReqLocal.setSpConfig(new ServiceProviderConfiguration(spConfig, basicConfig));
-
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_3.xml");
-
- //test
- authRequestValidator.process(httpReq, pendingReqLocal, authReq, null);
-
- //validate
- Assert.assertNull("wrong transactionId", pendingReqLocal.getUniqueTransactionIdentifier());
-
- }
-
- @Test
- public void invalidBpkTarget_1() throws ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_4.xml");
-
- //test
- try {
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
- Assert.fail("Invalid or missing bPK target not detected");
-
- } catch (AuthnRequestValidatorException e) {
- Assert.assertEquals("Wrong errorCode", "pvp2.22", e.getErrorId());
-
- }
- }
-
- @Test
- public void invalidBpkTarget_2() throws ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_5.xml");
-
- //test
- try {
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
- Assert.fail("Invalid or missing bPK target not detected");
-
- } catch (AuthnRequestValidatorException e) {
- Assert.assertEquals("Wrong errorCode", "pvp2.22", e.getErrorId());
-
- }
- }
-
- @Test
- public void invalidBpkTarget_3() throws ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_6.xml");
-
- //test
- try {
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
- Assert.fail("Invalid or missing bPK target not detected");
-
- } catch (AuthnRequestValidatorException e) {
- Assert.assertEquals("Wrong errorCode", "pvp2.22", e.getErrorId());
-
- }
- }
-
- @Test
- public void invalidBpkTarget_4() throws ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_7.xml");
-
- //test
- try {
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
- Assert.fail("Invalid or missing bPK target not detected");
-
- } catch (AuthnRequestValidatorException e) {
- Assert.assertEquals("Wrong errorCode", "pvp2.22", e.getErrorId());
-
- }
- }
-
- @Test
- public void invalidBpkTarget_5() throws ParserConfigurationException,
- SAXException, IOException, UnmarshallingException {
- AuthnRequest authReq = getAuthRequest("/data/pvp2_authn_8.xml");
-
- //test
- try {
- authRequestValidator.process(httpReq, pendingReq, authReq, null);
- Assert.fail("Invalid or missing bPK target not detected");
-
- } catch (AuthnRequestValidatorException e) {
- Assert.assertEquals("Wrong errorCode", "pvp2.22", e.getErrorId());
-
- }
- }
-
-
- private AuthnRequest getAuthRequest(String resource) throws
- ParserConfigurationException, SAXException, IOException, UnmarshallingException {
- final Element authBlockDom =
- DomUtils.parseXmlValidating(AuthnRequestValidatorTest.class.getResourceAsStream(resource));
-
- final Unmarshaller unmarshaller = XMLObjectSupport.getUnmarshaller(authBlockDom);
- return (AuthnRequest) unmarshaller.unmarshall(authBlockDom);
-
- }
-}