[java-opensaml] branch master updated: De-duplicate checks across entire collection.

Scott Cantor cantor.2 at osu.edu
Mon Feb 17 20:48:58 EST 2020


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=91374f5bc9bec928d5b0399dea9db078d9429c36

The following commit(s) were added to refs/heads/master by this push:
       new  91374f5   De-duplicate checks across entire collection.
91374f5 is described below

commit 91374f5bc9bec928d5b0399dea9db078d9429c36
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Feb 17 20:48:55 2020 -0500

    De-duplicate checks across entire collection.
---
 .../resolver/filter/impl/AlgorithmFilter.java      | 49 +++++++++++-----------
 .../resolver/filter/impl/AlgorithmFilterTest.java  |  2 +-
 2 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java
index 8740b16..aa0d246 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilter.java
@@ -98,34 +98,33 @@ public class AlgorithmFilter extends AbstractInitializableComponent implements M
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         Constraint.isNotNull(rules, "Rules map cannot be null");
         
+        rules.values().stream()
+            .flatMap(Collection::stream)
+            .filter(DigestMethod.class::isInstance)
+            .map(DigestMethod.class::cast)
+            .map(DigestMethod::getAlgorithm)
+            .distinct()
+            .forEach(uri -> checkDigestMethod(uri));
+
+        rules.values().stream()
+            .flatMap(Collection::stream)
+            .filter(SigningMethod.class::isInstance)
+            .map(SigningMethod.class::cast)
+            .map(SigningMethod::getAlgorithm)
+            .distinct()
+            .forEach(uri -> checkSigningMethod(uri));
+
+        rules.values().stream()
+            .flatMap(Collection::stream)
+            .filter(EncryptionMethod.class::isInstance)
+            .map(EncryptionMethod.class::cast)
+            .map(EncryptionMethod::getAlgorithm)
+            .distinct()
+            .forEach(uri -> checkEncryptionMethod(uri));
+
         applyMap = ArrayListMultimap.create(rules.size(), 1);
         for (final Map.Entry<Predicate<EntityDescriptor>,Collection<XMLObject>> entry : rules.entrySet()) {
             if (entry.getKey() != null && entry.getValue() != null) {
-                
-                entry.getValue()
-                    .stream()
-                    .filter(DigestMethod.class::isInstance)
-                    .map(DigestMethod.class::cast)
-                    .map(DigestMethod::getAlgorithm)
-                    .distinct()
-                    .forEach(uri -> checkDigestMethod(uri));
-
-                entry.getValue()
-                    .stream()
-                    .filter(SigningMethod.class::isInstance)
-                    .map(SigningMethod.class::cast)
-                    .map(SigningMethod::getAlgorithm)
-                    .distinct()
-                    .forEach(uri -> checkSigningMethod(uri));
-
-                entry.getValue()
-                    .stream()
-                    .filter(EncryptionMethod.class::isInstance)
-                    .map(EncryptionMethod.class::cast)
-                    .map(EncryptionMethod::getAlgorithm)
-                    .distinct()
-                    .forEach(uri -> checkEncryptionMethod(uri));
-                
                 applyMap.putAll(entry.getKey(), List.copyOf(entry.getValue()));
             }
         }
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilterTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilterTest.java
index 92f9737..c17f558 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilterTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/AlgorithmFilterTest.java
@@ -106,7 +106,7 @@ public class AlgorithmFilterTest extends XMLObjectBaseTestCase implements Predic
         final Collection<XMLObject> algs = List.of(digest1, digest2, signing1, signing2, enc, digest3, signing3, enc2);
         
         final AlgorithmFilter filter = new AlgorithmFilter();
-        filter.setRules(Collections.<Predicate<EntityDescriptor>,Collection<XMLObject>>singletonMap(this, algs));
+        filter.setRules(Collections.singletonMap(this, algs));
         filter.initialize();
         
         metadataProvider.setMetadataFilter(filter);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list