[java-identity-provider] branch master updated: Clean up more use of immutable collection methods.

Scott Cantor cantor.2 at osu.edu
Fri Nov 1 16:12:51 EDT 2019


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

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

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=fe89e302095a54f814e798472edc118086aa8ae0

The following commit(s) were added to refs/heads/master by this push:
       new  fe89e30   Clean up more use of immutable collection methods.
fe89e30 is described below

commit fe89e302095a54f814e798472edc118086aa8ae0
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Nov 1 16:12:47 2019 -0400

    Clean up more use of immutable collection methods.
---
 .../idp/admin/BasicAdministrativeFlowDescriptor.java | 10 ++++++----
 .../idp/cas/config/impl/LoginConfiguration.java      | 10 ++++++----
 .../config/AbstractSAMLProfileConfiguration.java     | 20 +++++++++-----------
 .../config/AbstractSAML2ProfileConfiguration.java    | 15 +++++++++++----
 .../profile/config/ECPProfileConfiguration.java      | 12 ++++++++----
 .../config/SingleLogoutProfileConfiguration.java     | 11 ++++++++---
 .../AbstractSAML2ProfileConfigurationTest.java       |  2 --
 7 files changed, 48 insertions(+), 32 deletions(-)

diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java
index fc88d50..5974034 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/BasicAdministrativeFlowDescriptor.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.admin;
 
 import java.security.Principal;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -37,7 +36,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Positive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.FunctionSupport;
 import net.shibboleth.utilities.java.support.primitive.LangBearingString;
@@ -417,7 +415,11 @@ public class BasicAdministrativeFlowDescriptor extends AbstractProfileConfigurat
     /** {@inheritDoc} */
     @Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getPostAuthenticationFlows(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return CollectionSupport.buildImmutableList(postAuthenticationFlowsLookupStrategy.apply(profileRequestContext));
+        final Collection<String> flows = postAuthenticationFlowsLookupStrategy.apply(profileRequestContext);
+        if (flows != null) {
+            return List.copyOf(flows);
+        }
+        return Collections.emptyList();
     }
     
     /**
@@ -429,7 +431,7 @@ public class BasicAdministrativeFlowDescriptor extends AbstractProfileConfigurat
 
         if (flows != null) {
             postAuthenticationFlowsLookupStrategy =
-                    FunctionSupport.constant(new ArrayList<>(StringSupport.normalizeStringCollection(flows)));
+                    FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(flows)));
         } else {
             postAuthenticationFlowsLookupStrategy = FunctionSupport.constant(null);
         }
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java
index 6dbba81..ea5ee9d 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.cas.config.impl;
 
 import java.security.Principal;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -39,7 +38,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.FunctionSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -162,7 +160,11 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
     /** {@inheritDoc} */
     @Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getPostAuthenticationFlows(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return CollectionSupport.buildImmutableList(postAuthenticationFlowsLookupStrategy.apply(profileRequestContext));
+        final Collection<String> flows = postAuthenticationFlowsLookupStrategy.apply(profileRequestContext);
+        if (flows != null) {
+            return List.copyOf(flows);
+        }
+        return Collections.emptyList();
     }
 
     /**
@@ -173,7 +175,7 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
     public void setPostAuthenticationFlows(@Nullable @NonnullElements final Collection<String> flows) {
         if (flows != null) {
             postAuthenticationFlowsLookupStrategy =
-                    FunctionSupport.constant(new ArrayList<>(StringSupport.normalizeStringCollection(flows)));
+                    FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(flows)));
         } else {
             postAuthenticationFlowsLookupStrategy = FunctionSupport.constant(null);
         }
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java
index 9ea38aa..c87cb75 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/profile/config/AbstractSAMLProfileConfiguration.java
@@ -19,7 +19,7 @@ package net.shibboleth.idp.saml.profile.config;
 
 import java.time.Duration;
 import java.util.Collection;
-import java.util.HashSet;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 import java.util.function.Function;
@@ -33,7 +33,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.FunctionSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -235,7 +234,12 @@ public abstract class AbstractSAMLProfileConfiguration extends AbstractCondition
     /** {@inheritDoc} */
     @Nonnull @NonnullElements @NotLive public Set<String> getAdditionalAudiencesForAssertion(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return CollectionSupport.buildImmutableSet(assertionAudiencesLookupStrategy.apply(profileRequestContext));
+        
+        final Collection<String> audiences = assertionAudiencesLookupStrategy.apply(profileRequestContext);
+        if (audiences != null) {
+            return Set.copyOf(audiences);
+        }
+        return Collections.emptySet();
     }
 
     /**
@@ -249,14 +253,8 @@ public abstract class AbstractSAMLProfileConfiguration extends AbstractCondition
         if (audiences == null || audiences.isEmpty()) {
             assertionAudiencesLookupStrategy = FunctionSupport.constant(null);
         } else {
-            final Set<String> assertionAudiences = new HashSet<>();
-            for (final String audience : audiences) {
-                final String trimmedAudience = StringSupport.trimOrNull(audience);
-                if (trimmedAudience != null) {
-                    assertionAudiences.add(trimmedAudience);
-                }
-            }
-            assertionAudiencesLookupStrategy = FunctionSupport.constant(assertionAudiences);
+            assertionAudiencesLookupStrategy = FunctionSupport.constant(
+                    Set.copyOf(StringSupport.normalizeStringCollection(audiences)));
         }
     }
 
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java
index 46754e4..eb2a955 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfiguration.java
@@ -18,6 +18,9 @@
 package net.shibboleth.idp.saml.saml2.profile.config;
 
 import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
 import java.util.function.Function;
 import java.util.function.Predicate;
 
@@ -30,7 +33,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.FunctionSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -114,9 +116,13 @@ public abstract class AbstractSAML2ProfileConfiguration extends AbstractSAMLProf
     }
 
     /** {@inheritDoc} */
-    @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getProxyAudiences(
+    @Nonnull @NonnullElements @NotLive @Unmodifiable public Set<String> getProxyAudiences(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return CollectionSupport.buildImmutableList(proxyAudiencesLookupStrategy.apply(profileRequestContext));
+        final Collection<String> audiences = proxyAudiencesLookupStrategy.apply(profileRequestContext);
+        if (audiences != null) {
+            return Set.copyOf(audiences);
+        }
+        return Collections.emptySet();
     }
 
     /**
@@ -128,7 +134,8 @@ public abstract class AbstractSAML2ProfileConfiguration extends AbstractSAMLProf
         if (audiences == null || audiences.isEmpty()) {
             proxyAudiencesLookupStrategy = FunctionSupport.constant(null);
         } else {
-            proxyAudiencesLookupStrategy = FunctionSupport.constant(StringSupport.normalizeStringCollection(audiences));
+            proxyAudiencesLookupStrategy = FunctionSupport.constant(
+                    List.copyOf(StringSupport.normalizeStringCollection(audiences)));
         }
     }
 
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java
index 2534abc..81059ea 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/ECPProfileConfiguration.java
@@ -18,7 +18,7 @@
 package net.shibboleth.idp.saml.saml2.profile.config;
 
 import java.util.Collection;
-import java.util.HashSet;
+import java.util.Collections;
 import java.util.Set;
 import java.util.function.Function;
 
@@ -31,7 +31,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.FunctionSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -72,7 +71,12 @@ public class ECPProfileConfiguration extends BrowserSSOProfileConfiguration {
      */
     @Nonnull @NonnullElements @NotLive @Unmodifiable public Set<String> getLocalEvents(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return CollectionSupport.buildImmutableSet(localEventsLookupStrategy.apply(profileRequestContext));
+        
+        final Set<String> events = localEventsLookupStrategy.apply(profileRequestContext);
+        if (events != null) {
+            return Set.copyOf(events);
+        }
+        return Collections.emptySet();
     }
 
     /**
@@ -86,7 +90,7 @@ public class ECPProfileConfiguration extends BrowserSSOProfileConfiguration {
 
         if (events != null && !events.isEmpty()) {
             localEventsLookupStrategy = FunctionSupport.constant(
-                    new HashSet<>(StringSupport.normalizeStringCollection(events)));
+                    Set.copyOf(StringSupport.normalizeStringCollection(events)));
         } else {
             localEventsLookupStrategy = FunctionSupport.constant(null);
         }
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfiguration.java
index 2f99a6f..de46ed8 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/SingleLogoutProfileConfiguration.java
@@ -18,6 +18,8 @@
 package net.shibboleth.idp.saml.saml2.profile.config;
 
 import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import java.util.function.Function;
 import java.util.function.Predicate;
 
@@ -34,7 +36,6 @@ import com.google.common.base.Predicates;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.FunctionSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -165,7 +166,11 @@ public class SingleLogoutProfileConfiguration extends AbstractSAML2ArtifactAware
      */
     @Nonnull @NonnullElements @NotLive public Collection<String> getQualifiedNameIDFormats(
             @Nullable final ProfileRequestContext profileRequestContext) {
-        return CollectionSupport.buildImmutableList(qualifiedNameIDFormatsLookupStrategy.apply(profileRequestContext));
+        final Collection<String> formats = qualifiedNameIDFormatsLookupStrategy.apply(profileRequestContext);
+        if (formats != null) {
+            return List.copyOf(formats);
+        }
+        return Collections.emptyList();
     }
 
     /**
@@ -186,7 +191,7 @@ public class SingleLogoutProfileConfiguration extends AbstractSAML2ArtifactAware
             qualifiedNameIDFormatsLookupStrategy = FunctionSupport.constant(null);
         } else {
             qualifiedNameIDFormatsLookupStrategy =
-                    FunctionSupport.constant(StringSupport.normalizeStringCollection(formats));
+                    FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(formats)));
         }
     }
 
diff --git a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java
index 6322819..a44ca8f 100644
--- a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java
+++ b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/AbstractSAML2ProfileConfigurationTest.java
@@ -112,7 +112,6 @@ public class AbstractSAML2ProfileConfigurationTest {
 
         final ArrayList<String> audiences = new ArrayList<>();
         audiences.add("foo");
-        audiences.add("foo");
         audiences.add("bar");
 
         config.setProxyAudiences(audiences);
@@ -132,7 +131,6 @@ public class AbstractSAML2ProfileConfigurationTest {
 
         final ArrayList<String> audiences = new ArrayList<>();
         audiences.add("foo");
-        audiences.add("foo");
         audiences.add("bar");
 
         config.setProxyAudiencesLookupStrategy(FunctionSupport.constant(audiences));

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


More information about the commits mailing list