diff options
Diffstat (limited to 'eaaf_modules/eaaf_module_pvp2_idp')
11 files changed, 499 insertions, 17 deletions
| diff --git a/eaaf_modules/eaaf_module_pvp2_idp/pom.xml b/eaaf_modules/eaaf_module_pvp2_idp/pom.xml index 2e9cb88d..0170febf 100644 --- a/eaaf_modules/eaaf_module_pvp2_idp/pom.xml +++ b/eaaf_modules/eaaf_module_pvp2_idp/pom.xml @@ -39,6 +39,12 @@      </dependency>      <dependency>        <groupId>at.gv.egiz.eaaf</groupId> +      <artifactId>eaaf_core_utils</artifactId> +      <scope>test</scope> +      <type>test-jar</type> +    </dependency>     +    <dependency> +      <groupId>at.gv.egiz.eaaf</groupId>        <artifactId>eaaf-core</artifactId>        <scope>test</scope>        <type>test-jar</type> diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AuthenticationAction.java b/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AuthenticationAction.java index 16cd27cd..f9d7767f 100644 --- a/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AuthenticationAction.java +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AuthenticationAction.java @@ -23,6 +23,19 @@ import javax.annotation.PostConstruct;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; +import org.joda.time.DateTime; +import org.opensaml.saml.common.xml.SAMLConstants; +import org.opensaml.saml.saml2.core.Assertion; +import org.opensaml.saml.saml2.core.AuthnRequest; +import org.opensaml.saml.saml2.core.Response; +import org.opensaml.saml.saml2.metadata.AssertionConsumerService; +import org.opensaml.saml.saml2.metadata.EntityDescriptor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Service; +  import at.gv.egiz.eaaf.core.api.IRequest;  import at.gv.egiz.eaaf.core.api.idp.IAction;  import at.gv.egiz.eaaf.core.api.idp.IAuthData; @@ -44,19 +57,6 @@ import at.gv.egiz.eaaf.modules.pvp2.impl.binding.RedirectBinding;  import at.gv.egiz.eaaf.modules.pvp2.impl.message.PvpSProfileRequest;  import at.gv.egiz.eaaf.modules.pvp2.impl.utils.Saml2Utils; -import org.joda.time.DateTime; -import org.opensaml.saml.common.xml.SAMLConstants; -import org.opensaml.saml.saml2.core.Assertion; -import org.opensaml.saml.saml2.core.AuthnRequest; -import org.opensaml.saml.saml2.core.Response; -import org.opensaml.saml.saml2.metadata.AssertionConsumerService; -import org.opensaml.saml.saml2.metadata.EntityDescriptor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Service; -  @Service("PVPAuthenticationRequestAction")  public class AuthenticationAction implements IAction {    private static final Logger log = LoggerFactory.getLogger(AuthenticationAction.class); @@ -117,10 +117,10 @@ public class AuthenticationAction implements IAction {        IEncoder binding = null;        if (consumerService.getBinding().equals(SAMLConstants.SAML2_REDIRECT_BINDING_URI)) { -        binding = springContext.getBean("PVPRedirectBinding", RedirectBinding.class); +        binding = springContext.getBean("PvpRedirectBinding", RedirectBinding.class);        } else if (consumerService.getBinding().equals(SAMLConstants.SAML2_POST_BINDING_URI)) { -        binding = springContext.getBean("PVPPOSTBinding", PostBinding.class); +        binding = springContext.getBean("PvpPostBinding", PostBinding.class);        } diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/AuthenticationActionTest.java b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/AuthenticationActionTest.java new file mode 100644 index 00000000..a88fa869 --- /dev/null +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/AuthenticationActionTest.java @@ -0,0 +1,226 @@ +package at.gv.egiz.eaaf.modules.pvp2.idp.test; + +import java.util.Date; + +import org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import at.gv.egiz.eaaf.core.api.data.EaafConstants; +import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.api.idp.auth.data.IIdentityLink; +import at.gv.egiz.eaaf.core.impl.idp.module.test.DummyAuthConfig; +import at.gv.egiz.eaaf.modules.pvp2.idp.exception.ResponderErrorException; +import at.gv.egiz.eaaf.modules.pvp2.idp.impl.AuthenticationAction; +import at.gv.egiz.eaaf.modules.pvp2.idp.impl.PvpSProfilePendingRequest; +import at.gv.egiz.eaaf.modules.pvp2.impl.metadata.PvpMetadataResolverFactory; +import at.gv.egiz.eaaf.modules.pvp2.impl.opensaml.initialize.EaafOpenSaml3xInitializer; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration({"/spring/test_eaaf_pvp.beans.xml"}) +@TestPropertySource( +    locations = {"/config/config_1.props"}) +public class AuthenticationActionTest { + +  @Autowired private DummyAuthConfig authConfig; +  @Autowired private PvpMetadataResolverFactory metadataResolverFactory; +  @Autowired private AuthenticationAction action; +   +  protected MockHttpServletRequest httpReq; +  protected MockHttpServletResponse httpResp; +  private PvpSProfilePendingRequest pendingReq; +  /** +   * JUnit class initializer. +   * +   * @throws Exception In case of an OpenSAML3 initialization error +   */ +  @BeforeClass +  public static void classInitializer() throws Exception { +    EaafOpenSaml3xInitializer.eaafInitialize(); + +  } +   +  /** +   * Test initializer. +   * +   */ +  @Before +  public void initialize() { +    httpReq = new MockHttpServletRequest(); +    httpResp = new MockHttpServletResponse(); + +    pendingReq = new PvpSProfilePendingRequest(); + +  } +   +  @Test +  public void checkNeedAuthFlag() { +    Assert.assertTrue("Wrong 'needAuth' flag", action.needAuthentication(pendingReq, httpReq, httpResp)); +     +  } +   +  @Test +  public void noAuthnRequestInPendingRequest() { +     +    IAuthData authData = generateAuthData(); +     +    try { +      action.processRequest(pendingReq, httpReq, httpResp, authData); +      Assert.fail("No SAML requst not detected"); +       +    } catch (ResponderErrorException e) { +      Assert.assertEquals("Wrong errorCode", "pvp2.01", e.getErrorId()); +    } +     +  } + +  private IAuthData generateAuthData() { +    return new IAuthData() { +       +      @Override +      public boolean isSsoSession() { +        return false; +      } +       +      @Override +      public boolean isForeigner() { +        return false; +      } +       +      @Override +      public boolean isBaseIdTransferRestrication() { +        return true; +      } +       +      @Override +      public Date getSsoSessionValidTo() { +        return null; +         +      } +       +      @Override +      public String getSessionIndex() { +        return null; +         +      } +       +      @Override +      public String getNameIdFormat() { +        return null; +         +      } +       +      @Override +      public String getNameID() { +        return null; +         +      } +       +      @Override +      public IIdentityLink getIdentityLink() { +        return null; +         +      } +       +      @Override +      public String getIdentificationValue() { +        return null; +         +      } +       +      @Override +      public String getIdentificationType() { +        return null; +         +      } +       +      @Override +      public String getGivenName() { +        return RandomStringUtils.randomAlphabetic(10); +         +      } +       +      @Override +      public <T> T getGenericData(String key, Class<T> clazz) { +        // TODO Auto-generated method stub +        return null; +      } +       +      @Override +      public String getFormatedDateOfBirth() { +        return DateFormatUtils.format(getDateOfBirth(), "yyyy-MM-dd"); +      } +       +      @Override +      public String getFamilyName() { +        return RandomStringUtils.randomAlphabetic(10); +         +      } +       +      @Override +      public String getEncryptedSourceIdType() { +        // TODO Auto-generated method stub +        return null; +      } +       +      @Override +      public String getEncryptedSourceId() { +        // TODO Auto-generated method stub +        return null; +      } +       +      @Override +      public String getEidasQaaLevel() { +        return EaafConstants.EIDAS_LOA_LOW; +      } +       +      @Override +      public Date getDateOfBirth() { +        return new Date(); +         +      } +       +      @Override +      public String getCiticenCountryCode() { +        // TODO Auto-generated method stub +        return null; +      } +       +      @Override +      public String getBpkType() { +        return EaafConstants.URN_PREFIX_CDID + RandomStringUtils.randomAlphabetic(2); +      } +       +      @Override +      public String getBpk() { +        return RandomStringUtils.randomAlphabetic(10); +      } +       +      @Override +      public String getAuthenticationIssuer() { +        return RandomStringUtils.randomAlphabetic(10); +      } +       +      @Override +      public String getAuthenticationIssueInstantString() { +        return DateFormatUtils.ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT.format(getAuthenticationIssueInstant()); +      } +       +      @Override +      public Date getAuthenticationIssueInstant() { +        return new Date(); +      } +    }; +     +  } +} diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/MetadataActionTest.java b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/MetadataActionTest.java new file mode 100644 index 00000000..8436a43d --- /dev/null +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/MetadataActionTest.java @@ -0,0 +1,67 @@ +package at.gv.egiz.eaaf.modules.pvp2.idp.test; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import at.gv.egiz.eaaf.core.impl.idp.module.test.DummyAuthConfig; +import at.gv.egiz.eaaf.core.impl.idp.module.test.TestRequestImpl; +import at.gv.egiz.eaaf.modules.pvp2.idp.impl.MetadataAction; +import at.gv.egiz.eaaf.modules.pvp2.impl.metadata.PvpMetadataResolverFactory; +import at.gv.egiz.eaaf.modules.pvp2.impl.opensaml.initialize.EaafOpenSaml3xInitializer; +import at.gv.egiz.eaaf.modules.pvp2.impl.verification.SamlVerificationEngine; +import at.gv.egiz.eaaf.modules.pvp2.test.dummy.DummyCredentialProvider; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration({"/spring/test_eaaf_pvp.beans.xml"}) +@TestPropertySource( +    locations = {"/config/config_1.props"}) +public class MetadataActionTest { + +  @Autowired private DummyAuthConfig authConfig; +  @Autowired private PvpMetadataResolverFactory metadataResolverFactory; +  @Autowired private SamlVerificationEngine verifyEngine; +  @Autowired private DummyCredentialProvider credentialProvider; +  @Autowired private MetadataAction action; +   +  protected MockHttpServletRequest httpReq; +  protected MockHttpServletResponse httpResp; +  private TestRequestImpl pendingReq; +  /** +   * JUnit class initializer. +   * +   * @throws Exception In case of an OpenSAML3 initialization error +   */ +  @BeforeClass +  public static void classInitializer() throws Exception { +    EaafOpenSaml3xInitializer.eaafInitialize(); + +  } +   +  /** +   * Test initializer. +   * +   */ +  @Before +  public void initialize() { +    httpReq = new MockHttpServletRequest(); +    httpResp = new MockHttpServletResponse(); + +    pendingReq = new TestRequestImpl(); + +  } +   +  @Test +  public void checkNeedAuthFlag() { +    Assert.assertFalse("Wrong 'needAuth' flag", action.needAuthentication(pendingReq, httpReq, httpResp)); +     +  } +} diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/Pvp2SProfileIdpSpringResourceProviderTest.java b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/Pvp2SProfileIdpSpringResourceProviderTest.java new file mode 100644 index 00000000..f9aafea9 --- /dev/null +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/Pvp2SProfileIdpSpringResourceProviderTest.java @@ -0,0 +1,56 @@ +package at.gv.egiz.eaaf.modules.pvp2.idp.test; + +import java.io.IOException; +import java.io.InputStream; + +import org.apache.commons.io.IOUtils; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.BlockJUnit4ClassRunner; +import org.springframework.core.io.Resource; + +import at.gv.egiz.eaaf.core.test.TestConstants; +import at.gv.egiz.eaaf.modules.pvp2.idp.Pvp2SProfileIdpSpringResourceProvider; + + + +@RunWith(BlockJUnit4ClassRunner.class) +public class Pvp2SProfileIdpSpringResourceProviderTest { + +  @Test +  public void testSpringConfig() { +    final Pvp2SProfileIdpSpringResourceProvider test = +        new Pvp2SProfileIdpSpringResourceProvider(); +    for (final Resource el : test.getResourcesToLoad()) { +      try { +        IOUtils.toByteArray(el.getInputStream()); + +      } catch (final IOException e) { +        Assert.fail("Ressouce: " + el.getFilename() + " not found"); +      } + +    } + +    Assert.assertNotNull("no Name", test.getName()); +    Assert.assertNull("Find package definitions", test.getPackagesToScan()); + +  } + +  @Test +  public void testSpILoaderConfig() { +    final InputStream el = this.getClass().getResourceAsStream(TestConstants.TEST_SPI_LOADER_PATH); +    try { +      final String spiFile = IOUtils.toString(el, "UTF-8"); + +      Assert.assertEquals("Wrong classpath in SPI file", +          Pvp2SProfileIdpSpringResourceProvider.class.getName(), spiFile); + + +    } catch (final IOException e) { +      Assert.fail("Ressouce: " + TestConstants.TEST_SPI_LOADER_PATH + " not found"); + +    } +  } + +} diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyLoALevelMapper.java b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyLoALevelMapper.java new file mode 100644 index 00000000..004df86d --- /dev/null +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyLoALevelMapper.java @@ -0,0 +1,25 @@ +package at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy; + +import at.gv.egiz.eaaf.core.api.data.ILoALevelMapper; + +public class DummyLoALevelMapper implements ILoALevelMapper { + +  @Override +  public String mapToEidasLoa(String qaa) { +    // TODO Auto-generated method stub +    return null; +  } + +  @Override +  public String mapToSecClass(String qaa) { +    // TODO Auto-generated method stub +    return null; +  } + +  @Override +  public String mapEidasQaaToStorkQaa(String eidasqaaLevel) { +    // TODO Auto-generated method stub +    return null; +  } + +} diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyPvpConfiguration.java b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyPvpConfiguration.java new file mode 100644 index 00000000..78e2d700 --- /dev/null +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyPvpConfiguration.java @@ -0,0 +1,43 @@ +package at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy; + +import java.util.List; + +import org.opensaml.saml.saml2.metadata.ContactPerson; +import org.opensaml.saml.saml2.metadata.Organization; + +import at.gv.egiz.eaaf.core.exceptions.EaafException; +import at.gv.egiz.eaaf.modules.pvp2.api.IPvp2BasicConfiguration; + +public class DummyPvpConfiguration implements IPvp2BasicConfiguration { + +  @Override +  public String getIdpEntityId(String authUrl) throws EaafException { +    return authUrl + "/idp"; +  } + +  @Override +  public String getIdpSsoPostService(String authUrl) throws EaafException { +    return authUrl + "/sso/post"; +  } + +  @Override +  public String getIdpSsoRedirectService(String authUrl) throws EaafException { +    return authUrl + "/sso/redirect"; +  } + +  @Override +  public Object getIdpSsoSoapService(String authUrl) throws EaafException { +    return authUrl + "/sso/soap"; +  } + +  @Override +  public List<ContactPerson> getIdpContacts() throws EaafException { +    return null; +  } + +  @Override +  public Organization getIdpOrganisation() throws EaafException { +    return null; +  } + +} diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyPvpMetadataConfigFactory.java b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyPvpMetadataConfigFactory.java new file mode 100644 index 00000000..3f24480b --- /dev/null +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummyPvpMetadataConfigFactory.java @@ -0,0 +1,16 @@ +package at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy; + +import at.gv.egiz.eaaf.modules.pvp2.api.metadata.IPvpMetadataBuilderConfiguration; +import at.gv.egiz.eaaf.modules.pvp2.api.metadata.IPvpMetadataConfigurationFactory; +import at.gv.egiz.eaaf.modules.pvp2.api.utils.IPvp2CredentialProvider; +import at.gv.egiz.eaaf.modules.pvp2.test.metadata.MetadataBuilderTest; + +public class DummyPvpMetadataConfigFactory implements IPvpMetadataConfigurationFactory { + +  @Override +  public IPvpMetadataBuilderConfiguration generateMetadataBuilderConfiguration(String authUrl, +      IPvp2CredentialProvider pvpIdpCredentials) { +    return MetadataBuilderTest.idpMetadataConfig(pvpIdpCredentials, false, true); +  } + +} diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummySubjectNameGenerator.java b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummySubjectNameGenerator.java new file mode 100644 index 00000000..3eaa4c09 --- /dev/null +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/java/at/gv/egiz/eaaf/modules/pvp2/idp/test/dummy/DummySubjectNameGenerator.java @@ -0,0 +1,18 @@ +package at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy; + +import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration; +import at.gv.egiz.eaaf.core.impl.data.Pair; +import at.gv.egiz.eaaf.modules.pvp2.exception.Pvp2Exception; +import at.gv.egiz.eaaf.modules.pvp2.idp.api.builder.ISubjectNameIdGenerator; + +public class DummySubjectNameGenerator implements ISubjectNameIdGenerator { + +  @Override +  public Pair<String, String> generateSubjectNameId(IAuthData authData, ISpConfiguration spConfig) +      throws Pvp2Exception { +    return Pair.newInstance(authData.getBpk(), authData.getBpkType()); +     +  } + +} diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_core.beans.xml b/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_core.beans.xml index 375224bb..f46b7747 100644 --- a/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_core.beans.xml +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_core.beans.xml @@ -21,5 +21,8 @@    <bean id="httpClientFactory"          class="at.gv.egiz.eaaf.core.impl.utils.HttpClientFactory" /> +         +  <bean id="dummyRevisionLogger" +        class="at.gv.egiz.eaaf.core.impl.logging.DummyRevisionsLogger" />  </beans>
\ No newline at end of file diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_pvp.beans.xml b/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_pvp.beans.xml index e3060b04..2bddd629 100644 --- a/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_pvp.beans.xml +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/test/resources/spring/test_eaaf_pvp.beans.xml @@ -12,15 +12,37 @@    <import resource="test_eaaf_core.beans.xml"/>      <import resource="classpath:/eaaf_pvp.beans.xml"/> +  <import resource="classpath:/eaaf_pvp_idp.beans.xml"/>    <bean id="dummyCredentialProvider"          class="at.gv.egiz.eaaf.modules.pvp2.test.dummy.DummyCredentialProvider" />    <bean id="dummyChainingMetadataResolver" -        class="at.gv.egiz.eaaf.modules.pvp2.test.dummy.DummyMetadataProvider"/> +        class="at.gv.egiz.eaaf.modules.pvp2.test.dummy.DummyMetadataProvider" />    <bean id="samlVerificationEngine" -        class="at.gv.egiz.eaaf.modules.pvp2.impl.verification.SamlVerificationEngine"/> +        class="at.gv.egiz.eaaf.modules.pvp2.impl.verification.SamlVerificationEngine" /> +  <bean id="dummyLoALevelMapper"  +        class="at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy.DummyLoALevelMapper" /> +         +  <bean id="dummySubjectNameIdGenerator" +        class="at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy.DummySubjectNameGenerator" /> +   +  <bean id="dummyPvpBasicConfig" +        class="at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy.DummyPvpConfiguration" /> +         +  <bean id="dummyMetadataConfigFactor" +        class="at.gv.egiz.eaaf.modules.pvp2.idp.test.dummy.DummyPvpMetadataConfigFactory" /> +         +  <bean   id="PVPAuthenticationRequestAction" +          class="at.gv.egiz.eaaf.modules.pvp2.idp.impl.AuthenticationAction"> +      <property name="pvpIdpCredentials" ref="dummyCredentialProvider" /> +  </bean> + +  <bean   id="pvpMetadataService" +          class="at.gv.egiz.eaaf.modules.pvp2.idp.impl.MetadataAction" > +      <property name="pvpIdpCredentials" ref="dummyCredentialProvider" /> +  </bean>  </beans>
\ No newline at end of file | 
