[java-identity-provider] 02/06: IDP-1516 remove null tolerance

Rod Widdowson rdw at steadingsoftware.com
Sat Nov 2 12:31:43 EDT 2019


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

rdw 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=c16d7e19228691c4547390413ef2a9cd9d42cd53

commit c16d7e19228691c4547390413ef2a9cd9d42cd53
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Fri Nov 1 11:34:09 2019 +0000

    IDP-1516 remove null tolerance
    
    https://issues.shibboleth.net/jira/browse/IDP-1516
---
 .../idp/attribute/resolver/AbstractDataConnector.java          | 10 ++++------
 .../idp/attribute/resolver/AbstractDataConnectorTest.java      |  4 ++--
 .../resolver/spring/dc/impl/DataConnectorFactoryBean.java      |  5 ++++-
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
index bdfb998..b4553f9 100644
--- a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
+++ b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
@@ -22,7 +22,7 @@ import java.time.Instant;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -65,7 +65,7 @@ public abstract class AbstractDataConnector extends AbstractResolverPlugin<Map<S
     private boolean exportAllAttributes;
 
     /** Which named attributes do we release?. */
-    @Nonnull @NonnullElements private Collection<String> exportAttributes;
+    @Nonnull @NonnullElements @Unmodifiable private Collection<String> exportAttributes;
 
     /** Constructor. */
     public AbstractDataConnector() {
@@ -151,12 +151,10 @@ public abstract class AbstractDataConnector extends AbstractResolverPlugin<Map<S
      *
      * @param what the list
      */
-    public void setExportAttributes(@Nonnull final Collection<String> what) {
+    public void setExportAttributes(@Nonnull @NonnullElements final Collection<String> what) {
         ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        exportAttributes = what.stream().map(StringSupport::trimOrNull).
-                filter(e -> e != null).
-                collect(Collectors.collectingAndThen(Collectors.toSet(), Collections::unmodifiableSet));
+        exportAttributes = Set.copyOf(what);
     }
 
     /**
diff --git a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
index 6df1e92..223a2f5 100644
--- a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
+++ b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
@@ -96,7 +96,7 @@ public class AbstractDataConnectorTest {
         assertTrue(connector.getExportAttributes().isEmpty());
         connector.setExportAllAttributes(true);
         assertTrue(connector.isExportAllAttributes());
-        connector.setExportAttributes(List.of("", "foo", "bar", "foo"));
+        connector.setExportAttributes(List.of("bar", "foo", "bar", "foo"));
         assertEquals(connector.getExportAttributes().size(), 2);
     }
 
@@ -128,4 +128,4 @@ public class AbstractDataConnectorTest {
             return staticValues;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
index 1f12226..0ae466f 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -34,6 +35,7 @@ import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AbstractResolverPluginFactoryBean;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -147,7 +149,8 @@ public class DataConnectorFactoryBean extends AbstractResolverPluginFactoryBean<
      * @param what the list
      */
     public void setExportAttributes(@Nonnull final Collection<String> what) {
-        exportAttributes = what;
+        // Future-proofing trimming
+        exportAttributes = what.stream().map(StringSupport::trimOrNull).collect(Collectors.toSet());
     }
 
    /**

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


More information about the commits mailing list