[java-identity-provider] 01/01: IDP-1795 Add deprecation warning for non lists passed to an IdPAttribute
Rod Widdowson
rdw at steadingsoftware.com
Mon Apr 26 12:06:42 UTC 2021
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch dev/IDP-1795
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=40d17d8ca3f8fdb6e1722bcea20aa7bf13b012ba
commit 40d17d8ca3f8fdb6e1722bcea20aa7bf13b012ba
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Apr 13 14:19:10 2021 +0100
IDP-1795 Add deprecation warning for non lists passed to an IdPAttribute
https://issues.shibboleth.net/jira/browse/IDP-1795
Also clean up some more tests
---
.../src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java | 4 ++++
.../shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java | 2 +-
.../attribute/filter/matcher/impl/MockValuePredicateMatcher.java | 1 -
.../idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java | 5 +++--
.../matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java | 6 +++---
.../filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java | 4 ++--
.../idp/attribute/resolver/ad/impl/ScriptedIdPAttributeImpl.java | 2 +-
7 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java b/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
index 4eaaf6aee..f6333fa45 100644
--- a/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
+++ b/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
@@ -226,6 +226,10 @@ public class IdPAttribute implements Comparable<IdPAttribute>, Cloneable {
*/
public void setValues(@Nullable @NullableElements final Collection<IdPAttributeValue> newValues) {
if (newValues != null) {
+ if (!(newValues instanceof List)) {
+ DeprecationSupport.warnOnce(ObjectType.METHOD, "Passing a Collection to IdpAttribute#setValues()",
+ null, "List");
+ }
values = newValues.stream().
map(e -> e==null? new EmptyAttributeValue(EmptyType.NULL_VALUE) :e).
collect(Collectors.toUnmodifiableList());
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
index 56b05a354..33afbd089 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
@@ -127,7 +127,7 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
} catch (final CloneNotSupportedException e) {
throw new AttributeFilterException(e);
}
- filteredAttribute.setValues(filteredAttributeValues);
+ filteredAttribute.setValues(List.copyOf(filteredAttributeValues));
filterContext.getFilteredIdPAttributes().put(filteredAttribute.getId(), filteredAttribute);
}
}
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
index 9061207e5..66a81ed12 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
@@ -20,7 +20,6 @@ package net.shibboleth.idp.attribute.filter.matcher.impl;
import java.util.function.Predicate;
import net.shibboleth.idp.attribute.IdPAttributeValue;
-import net.shibboleth.idp.attribute.filter.matcher.impl.AbstractMatcher;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@SuppressWarnings("javadoc")
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
index 41a87e848..4e5af78cf 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
@@ -25,8 +25,9 @@ import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
+import java.util.ArrayList;
import java.util.Collections;
-import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import javax.security.auth.Subject;
@@ -305,7 +306,7 @@ public class ScriptedMatcherTest extends AbstractMatcherPolicyRuleTest {
final IdPAttribute newAttr = attribute.clone();
- final Set<IdPAttributeValue> s = new LinkedHashSet<>(2);
+ final List<IdPAttributeValue> s = new ArrayList<>(2);
s.add(new StringAttributeValue(ProfileRequestContext.class.getName()));
s.add(new StringAttributeValue("BAR"));
s.add(new StringAttributeValue("FOO"));
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
index 635b8eaa7..64d1b6bab 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
@@ -180,7 +180,7 @@ public class MappedAttributeInMetadataMatcherTest extends OpenSAMLInitBaseTestCa
IdPRequestedAttribute required = new IdPRequestedAttribute("attr");
required.setRequired(true);
- required.setValues(Collections.singleton(DataSources.STRING_VALUE));
+ required.setValues(Collections.singletonList(DataSources.STRING_VALUE));
AttributeFilterContext context = makeContext(required);
@@ -206,11 +206,11 @@ public class MappedAttributeInMetadataMatcherTest extends OpenSAMLInitBaseTestCa
IdPRequestedAttribute req1 = new IdPRequestedAttribute("attr");
req1.setRequired(true);
- req1.setValues(Collections.singleton(DataSources.STRING_VALUE));
+ req1.setValues(Collections.singletonList(DataSources.STRING_VALUE));
IdPRequestedAttribute req2 = new IdPRequestedAttribute("attr");
req2.setRequired(true);
- req2.setValues(Collections.singleton(DataSources.NON_MATCH_STRING_VALUE));
+ req2.setValues(Collections.singletonList(DataSources.NON_MATCH_STRING_VALUE));
final AttributeFilterContext context = new AttributeFilterContext();
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java
index 7a725c12f..57454d64d 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRuleTest.java
@@ -20,8 +20,8 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
+import java.util.ArrayList;
import java.util.Collections;
-import java.util.LinkedHashSet;
import org.testng.annotations.Test;
@@ -111,7 +111,7 @@ public class NumOfAttributeValuesPolicyRuleTest {
private AttributeFilterContext manufactureWith(String name, int howMany) {
final IdPAttribute attr = new IdPAttribute(name);
- final LinkedHashSet<IdPAttributeValue> hs = new LinkedHashSet<>(howMany);
+ final ArrayList<IdPAttributeValue> hs = new ArrayList<>(howMany);
for (int i = 0; i < howMany; i++) {
hs.add(new StringAttributeValue(Integer.toString(i)));
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedIdPAttributeImpl.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedIdPAttributeImpl.java
index 75f28b593..54141b80d 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedIdPAttributeImpl.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedIdPAttributeImpl.java
@@ -66,7 +66,7 @@ public class ScriptedIdPAttributeImpl implements ScriptedIdPAttribute {
* called.
* </p>
*/
- private Collection<Object> attributeValues;
+ private List<Object> attributeValues;
/** The prefix for logging. Derived from the definition's logPrefix and the attribute ID. */
private final String logPrefix;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list