summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java22
-rw-r--r--eaaf_modules/eaaf_module_pvp2_core/src/test/java/at/gv/egiz/eaaf/modules/pvp2/test/metadata/MetadataResolverTest.java45
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()));
}