[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