[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/metadata/resolver/filter/impl/Pr...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Apr 29 04:28:26 EDT 2015
Author: rdw
Date: Wed Apr 29 04:28:26 2015
New Revision: 4262
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4262&view=rev
Log:
OSJ-116 Fix Predicate Filter and and signle nodes. Plus test
Added:
trunk/opensaml-saml-impl/src/test/resources/data/org/opensaml/saml/saml2/metadata/entitydescriptor-metadata.xml (with props)
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilter.java
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilterTest.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilter.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilter.java?rev=4262&r1=4261&r2=4262&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilter.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilter.java Wed Apr 29 04:28:26 2015
@@ -121,13 +121,20 @@
if (metadata == null) {
return null;
}
-
if (metadata instanceof EntitiesDescriptor) {
filterEntitiesDescriptor((EntitiesDescriptor) metadata);
return metadata;
- } else if (condition.apply((EntityDescriptor) metadata)) {
- return Direction.INCLUDE.equals(direction) ? metadata : null;
+ } else if (metadata instanceof EntityDescriptor) {
+ EntityDescriptor entity = (EntityDescriptor) metadata;
+
+ if (Direction.EXCLUDE.equals(direction) == condition.apply(entity)) {
+ log.trace("Filtering out entity {} ", entity.getEntityID());
+ return null;
+ } else {
+ return metadata;
+ }
} else {
+ log.error("Unrecognised metadata type {}", metadata.getClass().getSimpleName());
return null;
}
}
Modified: trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilterTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilterTest.java?rev=4262&r1=4261&r2=4262&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilterTest.java (original)
+++ trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/PredicateFilterTest.java Wed Apr 29 04:28:26 2015
@@ -41,20 +41,29 @@
private ResourceBackedMetadataResolver metadataProvider;
+ private ResourceBackedMetadataResolver singleEntityProvider;
+
@BeforeMethod
protected void setUp() throws Exception {
final Resource resource = new ClassPathResource("data/org/opensaml/saml/saml2/metadata/InCommon-metadata.xml");
metadataProvider = new ResourceBackedMetadataResolver(null, ResourceHelper.of(resource));
- metadataProvider.setId("test");
+ metadataProvider.setId("multi");
metadataProvider.setParserPool(parserPool);
+
+ final Resource singleResource = new ClassPathResource("data/org/opensaml/saml/saml2/metadata/entitydescriptor-metadata.xml");
+ singleEntityProvider = new ResourceBackedMetadataResolver(null, ResourceHelper.of(singleResource));
+ singleEntityProvider.setId("single");
+ singleEntityProvider.setParserPool(parserPool);
+
}
-
+
@Test
public void testBlacklist() throws Exception {
final String whitelisted = "urn:mace:incommon:dartmouth.edu";
final String blacklisted = "urn:mace:incommon:osu.edu";
+ final String osu = "urn:mace:incommon:osu.edu";
final EntityIdPredicate condition = new EntityIdPredicate(Collections.singletonList(blacklisted));
@@ -66,6 +75,13 @@
entity = metadataProvider.resolveSingle(new CriteriaSet(new EntityIdCriterion(whitelisted)));
Assert.assertNotNull(entity);
+
+ singleEntityProvider.setMetadataFilter(new PredicateFilter(Direction.EXCLUDE, condition));
+ singleEntityProvider.initialize();
+
+ entity = singleEntityProvider.resolveSingle(new CriteriaSet(new EntityIdCriterion(osu)));
+ Assert.assertNull(entity);
+
}
@Test
@@ -73,6 +89,7 @@
final String whitelisted = "urn:mace:incommon:dartmouth.edu";
final String blacklisted = "urn:mace:incommon:osu.edu";
+ final String osu = "urn:mace:incommon:osu.edu";
final EntityIdPredicate condition = new EntityIdPredicate(Collections.singletonList(whitelisted));
@@ -84,5 +101,12 @@
[... 12 lines stripped ...]
More information about the commits
mailing list