diff options
2 files changed, 30 insertions, 37 deletions
| diff --git a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java index 14a641e6..1b14c92d 100644 --- a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java +++ b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java @@ -474,28 +474,6 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec    } -//  private boolean resolveEntityDescriporForRefesh(String entityId) { -//    final CriteriaSet criteria = new CriteriaSet(); -//    criteria.add(new EntityIdCriterion(entityId)); -//    for (final MetadataResolver resolver : internalResolvers) { -//      try { -//        if (resolver instanceof RefreshableMetadataResolver -//            && resolver.resolveSingle(criteria) != null) { -// -//          ((RefreshableMetadataResolver)resolver).refresh(); -//          return true; -// -//        } -// -//      } catch (final ResolverException e) { -//        continue; -// -//      } -//    } -// -//    return false; -//  } -    private void destroyMetadataResolver(MetadataResolver resolver) {      if (resolver instanceof AbstractMetadataResolver) {        final AbstractMetadataResolver httpprovider = (AbstractMetadataResolver) resolver; diff --git a/eaaf_modules/eaaf_module_pvp2_core/src/test/java/at/gv/egiz/eaaf/modules/pvp2/test/metadata/MetadataResolverTest.java b/eaaf_modules/eaaf_module_pvp2_core/src/test/java/at/gv/egiz/eaaf/modules/pvp2/test/metadata/MetadataResolverTest.java index 8995152d..bcdeb765 100644 --- a/eaaf_modules/eaaf_module_pvp2_core/src/test/java/at/gv/egiz/eaaf/modules/pvp2/test/metadata/MetadataResolverTest.java +++ b/eaaf_modules/eaaf_module_pvp2_core/src/test/java/at/gv/egiz/eaaf/modules/pvp2/test/metadata/MetadataResolverTest.java @@ -26,6 +26,7 @@ import at.gv.egiz.eaaf.modules.pvp2.impl.validation.metadata.SimpleMetadataSigna  import at.gv.egiz.eaaf.modules.pvp2.test.dummy.DummyCredentialProvider;  import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.RandomStringUtils;  import org.joda.time.DateTime;  import org.junit.Assert;  import org.junit.Before; @@ -281,7 +282,22 @@ public class MetadataResolverTest {        ResolverException, XMLParserException, UnmarshallingException, SamlSigningException,        CredentialsNotAvailableException, MarshallingException, TransformerException, IOException { -    final String metadataUrl = "classpath:/data/pvp_metadata_valid.xml"; +    mockWebServer.shutdown(); +    mockWebServer = new MockWebServer(); +    mockServerUrl = mockWebServer.url("/sp/metadata"); + +    final EntityDescriptor metadata = (EntityDescriptor) XMLObjectSupport.unmarshallFromInputStream( +        XMLObjectProviderRegistrySupport.getParserPool(), +        MetadataResolverTest.class.getResourceAsStream("/data/pvp_metadata_moaid_test.xml")); +    metadata.setValidUntil(DateTime.now().plusDays(1)); +    metadata.setSignature(null); +    metadata.setEntityID(RandomStringUtils.randomAlphabetic(10)); +    final EntityDescriptor signedMatadata = +        Saml2Utils.signSamlObject(metadata, credentialProvider.getMetaDataSigningCredential(), true); +    final Element metadataElement = XMLObjectSupport.marshall(signedMatadata); +    mockWebServer.enqueue(new MockResponse().setResponseCode(200) +        .setBody(SerializeSupport.nodeToString(metadataElement)) +        .setHeader("Content-Type", "text/html;charset=utf-8"));      final List<BasicX509Credential> credentials = new ArrayList<>();      final CertificateFactory fact = CertificateFactory.getInstance("X.509"); @@ -296,18 +312,18 @@ public class MetadataResolverTest {      filterList.add(new SchemaValidationFilter(true));      filterList.add(new SimpleMetadataSignatureVerificationFilter(          credentials, -        metadataUrl)); +        mockServerUrl.url().toString()));      filterList.add(new PvpEntityCategoryFilter(true));      final MetadataFilterChain filterChain = new MetadataFilterChain();      filterChain.setFilters(filterList);      final IPvp2MetadataProvider mdResolver = metadataResolverFactory.createMetadataProvider( -        metadataUrl, +        mockServerUrl.url().toString(),          filterChain, "jUnit test", httpClientFactory.getHttpClient());      final EntityDescriptor entityIdNotExists = mdResolver.getEntityDescriptor( -        "https://demo.egiz.gv.at/demoportal_moaid-2.0/sp/eid/metadata"); +        metadata.getEntityID());      Assert.assertNotNull("No EntityDescripter", entityIdNotExists);    } @@ -322,8 +338,10 @@ public class MetadataResolverTest {          MetadataResolverTest.class.getResourceAsStream("/data/pvp_metadata_valid_with_entityCategory.xml"));      metadata.setValidUntil(DateTime.now().plusDays(1));      metadata.setSignature(null); -    Saml2Utils.signSamlObject(metadata, credentialProvider.getMetaDataSigningCredential(), true); -    final Element metadataElement = XMLObjectSupport.marshall(metadata); +    metadata.setEntityID(RandomStringUtils.randomAlphabetic(10)); +    final EntityDescriptor signedMatadata = +        Saml2Utils.signSamlObject(metadata, credentialProvider.getMetaDataSigningCredential(), true); +    final Element metadataElement = XMLObjectSupport.marshall(signedMatadata);      mockWebServer.enqueue(new MockResponse().setResponseCode(200)          .setBody(SerializeSupport.nodeToString(metadataElement))          .setHeader("Content-Type", "text/html;charset=utf-8")); @@ -353,8 +371,7 @@ public class MetadataResolverTest { -    final EntityDescriptor descr = mdResolver.getEntityDescriptor( -        "https://demo.egiz.gv.at/demoportal_moaid-2.0/sp/eid/metadata"); +    final EntityDescriptor descr = mdResolver.getEntityDescriptor(metadata.getEntityID());      Assert.assertNotNull("No EntityDescripter", descr);      final List<RequestedAttribute> reqAttr = descr.getSPSSODescriptor(SAMLConstants.SAML20P_NS) @@ -374,8 +391,10 @@ public class MetadataResolverTest {          MetadataResolverTest.class.getResourceAsStream("/data/pvp_metadata_valid_with_entityCategory_egov.xml"));      metadata.setValidUntil(DateTime.now().plusDays(1));      metadata.setSignature(null); -    Saml2Utils.signSamlObject(metadata, credentialProvider.getMetaDataSigningCredential(), true); -    final Element metadataElement = XMLObjectSupport.marshall(metadata); +    metadata.setEntityID(RandomStringUtils.randomAlphabetic(10)); +    final EntityDescriptor signedMatadata = +        Saml2Utils.signSamlObject(metadata, credentialProvider.getMetaDataSigningCredential(), true); +    final Element metadataElement = XMLObjectSupport.marshall(signedMatadata);      mockWebServer.enqueue(new MockResponse().setResponseCode(200)          .setBody(SerializeSupport.nodeToString(metadataElement))          .setHeader("Content-Type", "text/html;charset=utf-8")); @@ -405,8 +424,7 @@ public class MetadataResolverTest { -    final EntityDescriptor descr = mdResolver.getEntityDescriptor( -        "https://demo.egiz.gv.at/demoportal_moaid-2.0/sp/eid/metadata"); +    final EntityDescriptor descr = mdResolver.getEntityDescriptor(metadata.getEntityID());      Assert.assertNotNull("No EntityDescripter", descr);      final List<RequestedAttribute> reqAttr = descr.getSPSSODescriptor(SAMLConstants.SAML20P_NS) @@ -631,13 +649,10 @@ public class MetadataResolverTest {      final EntityDescriptor entityId = mdResolver.getEntityDescriptor(entityIdToResolve);      Assert.assertNotNull("No EntityDescripter", entityId); -    final DateTime lastRefresh = mdResolver.getLastRefresh(); -      // refresh metadata      mdResolver.refresh();      Assert.assertTrue("Refresh not sucessful", mdResolver.wasLastRefreshSuccess()); -    Assert.assertTrue("Wrong last refresh date", lastRefresh.isBefore(mdResolver.getLastRefresh()));    } | 
