[java-opensaml COMMIT] in /trunk/opensaml-xmlsec-impl/src: main/java/org/opensaml/xmlsec/impl/BasicWhitelistBlacklist...

noreply at shibboleth.net noreply at shibboleth.net
Fri May 16 21:32:00 EDT 2014


Author: putmanb
Date: Fri May 16 21:32:00 2014
New Revision: 3886

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3886&view=rev
Log:
Change default blacklist merge to true, to avoid unintentionally missing blacklists defined at at lower order-of-precedence.

Modified:
    trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicWhitelistBlacklistConfiguration.java
    trunk/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/impl/AbstractSecurityParametersResolverTest.java
    trunk/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/impl/BasicWhitelistBlacklistConfigurationTest.java

Modified: trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicWhitelistBlacklistConfiguration.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicWhitelistBlacklistConfiguration.java?rev=3886&r1=3885&r2=3886&view=diff
==============================================================================
--- trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicWhitelistBlacklistConfiguration.java (original)
+++ trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicWhitelistBlacklistConfiguration.java Fri May 16 21:32:00 2014
@@ -66,6 +66,12 @@
         whitelist = Collections.emptySet();
         blacklist = Collections.emptySet();
         precedence = DEFAULT_PRECEDENCE;
+        
+        // These merging defaults are intended to be the more secure/conservative approach:
+        // - do merge blacklists by default since don't want to unintentionally miss blacklist from lower level
+        // - do not merge whitelists by default since don't want to unintentionally include algos from lower level
+        blacklistMerge = true;
+        whitelistMerge = false;
     }
     
     /**
@@ -90,7 +96,11 @@
         whitelist = Sets.newHashSet(StringSupport.normalizeStringCollection(uris));
     }
 
-    /** {@inheritDoc} */
+    /** 
+     * {@inheritDoc}
+     * 
+     * <p>Defaults to: <code>false</code>
+     */
     public boolean isWhitelistMerge() {
         return whitelistMerge;
     }
@@ -98,6 +108,8 @@
     /**
      * Set the flag indicating whether to merge this configuration's whitelist with one of a lower order of precedence,
      * or to treat this whitelist as authoritative.
+     * 
+     * <p>Defaults to: <code>false</code>
      * 
      * @param flag true if should merge, false otherwise
      */
@@ -127,7 +139,11 @@
         blacklist = Sets.newHashSet(StringSupport.normalizeStringCollection(uris));
     }
 
-    /** {@inheritDoc} */
+    /** 
+     * {@inheritDoc}
+     * 
+     * <p>Defaults to: <code>true</code>
+     */
     public boolean isBlacklistMerge() {
         return blacklistMerge;
     }
@@ -135,6 +151,8 @@
     /**
      * Set the flag indicating whether to merge this configuration's blacklist with one of a lower order of precedence,
      * or to treat this blacklist as authoritative.
+     * 
+     * <p>Defaults to: <code>true</code>
      * 
      * @param flag true if should merge, false otherwise
      */

Modified: trunk/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/impl/AbstractSecurityParametersResolverTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/impl/AbstractSecurityParametersResolverTest.java?rev=3886&r1=3885&r2=3886&view=diff
==============================================================================
--- trunk/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/impl/AbstractSecurityParametersResolverTest.java (original)
+++ trunk/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/impl/AbstractSecurityParametersResolverTest.java Fri May 16 21:32:00 2014
@@ -87,6 +87,22 @@
         
         WhitelistBlacklistParameters params = resolver.resolveSingle(criteriaSet);
         
+        HashSet<String> control = new HashSet<>();
+        control.addAll(set1);
+        control.addAll(set2);
+        
+        Assert.assertEquals(params.getWhitelistedAlgorithms(), Collections.emptySet());
+        Assert.assertEquals(params.getBlacklistedAlgorithms(), control);
+    }
+    
+    @Test
+    public void testBlacklistOnlyNoMerge() throws ResolverException {
+        config1.setBlacklistedAlgorithms(set1);
+        config1.setBlacklistMerge(false);
+        config2.setBlacklistedAlgorithms(set2);
+        
+        WhitelistBlacklistParameters params = resolver.resolveSingle(criteriaSet);
+        
         Assert.assertEquals(params.getWhitelistedAlgorithms(), Collections.emptySet());
         Assert.assertEquals(params.getBlacklistedAlgorithms(), set1);
     }
@@ -294,10 +310,10 @@
         
         blacklist = resolver.resolveEffectiveBlacklist(criteriaSet, criterion.getConfigurations());
         Assert.assertTrue(blacklist.containsAll(set1));
-        Assert.assertFalse(blacklist.containsAll(set2));
-        Assert.assertFalse(blacklist.containsAll(set3));
-        
-        config1.setBlacklistMerge(true);
+        Assert.assertTrue(blacklist.containsAll(set2));

[... 58 lines stripped ...]


More information about the commits mailing list