[java-opensaml COMMIT] /trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/BasicD...

noreply at shibboleth.net noreply at shibboleth.net
Fri Oct 31 22:00:44 EDT 2014


Author: putmanb
Date: Fri Oct 31 22:00:40 2014
New Revision: 4126

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4126&view=rev
Log:
Tighten up logic.  Normalize the returned set's values.

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/BasicDynamicTrustedNamesStrategy.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/BasicDynamicTrustedNamesStrategy.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/BasicDynamicTrustedNamesStrategy.java?rev=4126&r1=4125&r2=4126&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/BasicDynamicTrustedNamesStrategy.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/BasicDynamicTrustedNamesStrategy.java Fri Oct 31 22:00:40 2014
@@ -18,11 +18,13 @@
 package org.opensaml.saml.metadata.resolver.filter.impl;
 
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.saml2.metadata.AffiliationDescriptor;
@@ -51,39 +53,39 @@
 public class BasicDynamicTrustedNamesStrategy implements Function<XMLObject, Set<String>> {
 
     /** {@inheritDoc} */
-    @Nonnull public Set<String> apply(@Nullable XMLObject input) {
+    @Nonnull @NonnullElements public Set<String> apply(@Nullable XMLObject input) {
         if (input == null) {
             return Collections.emptySet();
         }
         
+        Set<String> rawResult = null;
+        
         if (input instanceof EntityDescriptor) {
-            return Sets.newHashSet(((EntityDescriptor)input).getEntityID());
-        }
-        
-        if (input instanceof EntitiesDescriptor) {
-            return Sets.newHashSet(((EntitiesDescriptor)input).getName());
-        }
-        
-        if (input instanceof RoleDescriptor) {
+            rawResult = Collections.singleton(((EntityDescriptor)input).getEntityID());
+        } else if (input instanceof EntitiesDescriptor) {
+            rawResult = Collections.singleton(((EntitiesDescriptor)input).getName());
+        } else if (input instanceof RoleDescriptor) {
             XMLObject parent = input.getParent();
             if (parent instanceof EntityDescriptor) {
-                return Sets.newHashSet(((EntityDescriptor)parent).getEntityID());
+                rawResult = Collections.singleton(((EntityDescriptor)parent).getEntityID());
+            }
+        } else if (input instanceof AffiliationDescriptor) {
+            rawResult = Sets.newHashSet();
+            
+            rawResult.add(((AffiliationDescriptor)input).getOwnerID());
+            
+            XMLObject parent = input.getParent();
+            if (parent instanceof EntityDescriptor) {
+                rawResult.add(((EntityDescriptor)parent).getEntityID());
             }
         }
         
-        if (input instanceof AffiliationDescriptor) {
-            HashSet<String> result = Sets.newHashSet();
-            
-            result.add(((AffiliationDescriptor)input).getOwnerID());
-            
-            XMLObject parent = input.getParent();
-            if (parent instanceof EntityDescriptor) {
-                result.add(((EntityDescriptor)parent).getEntityID());
-            }
-            return result;
+        if (rawResult != null) {
+            return Sets.newHashSet(StringSupport.normalizeStringCollection(rawResult));
+        } else {
+            return Collections.emptySet();
         }
         
-        return Collections.emptySet();
     }
 
 }



More information about the commits mailing list