[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