[java-identity-provider COMMIT] in /trunk: idp-conf/src/test/resources/test/test-ldap.ldif idp-consent-impl/src/main/...
noreply at shibboleth.net
noreply at shibboleth.net
Mon Oct 17 16:28:56 EDT 2016
Author: tzeller
Date: Mon Oct 17 16:28:56 2016
New Revision: 8500
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8500&view=rev
Log:
IDP-1026 - Omit empty attributes from consent
https://issues.shibboleth.net/jira/browse/IDP-1026
Modified:
trunk/idp-conf/src/test/resources/test/test-ldap.ldif
trunk/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java
trunk/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributePredicateTest.java
Modified: trunk/idp-conf/src/test/resources/test/test-ldap.ldif
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/test/resources/test/test-ldap.ldif?rev=8500&r1=8499&r2=8500&view=diff
==============================================================================
--- trunk/idp-conf/src/test/resources/test/test-ldap.ldif (original)
+++ trunk/idp-conf/src/test/resources/test/test-ldap.ldif Mon Oct 17 16:28:56 2016
@@ -48,3 +48,14 @@
sn: myservice
uid: myservice
userpassword: myServicePassword
+
+dn: cn=IDP-1026,ou=people,dc=example,dc=org
+objectclass: inetOrgPerson
+cn: idp-1026
+givenName: IDP-1026
+sn: Doe
+uid: IDP-1026
+userpassword: changeit
+homephone: 555-111-2222
+mail:
+description: IDP-1026
Modified: trunk/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java?rev=8500&r1=8499&r2=8500&view=diff
==============================================================================
--- trunk/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java (original)
+++ trunk/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AttributePredicate.java Mon Oct 17 16:28:56 2016
@@ -26,7 +26,9 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import net.shibboleth.idp.attribute.EmptyAttributeValue;
import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
@@ -95,6 +97,10 @@
return false;
}
+ if (isEmpty(input)) {
+ return false;
+ }
+
final String attributeId = input.getId();
if (!whitelistedAttributeIds.isEmpty() && !whitelistedAttributeIds.contains(attributeId)) {
@@ -110,4 +116,21 @@
&& (matchExpression == null || matchExpression.matcher(attributeId).matches());
}
}
+
+ /**
+ * Whether the IdP attribute is empty.
+ *
+ * @param input the IdP Attribute
+ * @return true if the IdP attribute has no values or empty values, false otherwise
+ */
+ private boolean isEmpty(@Nonnull final IdPAttribute input) {
+
+ for (final IdPAttributeValue value : input.getValues()) {
+ if (!(value instanceof EmptyAttributeValue)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
}
Modified: trunk/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributePredicateTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributePredicateTest.java?rev=8500&r1=8499&r2=8500&view=diff
==============================================================================
--- trunk/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributePredicateTest.java (original)
+++ trunk/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributePredicateTest.java Mon Oct 17 16:28:56 2016
@@ -21,6 +21,7 @@
import java.util.regex.Pattern;
import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.StringAttributeValue;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
@@ -37,7 +38,9 @@
@BeforeMethod public void setUp() {
attribute1 = new IdPAttribute("attribute1");
+ attribute1.setValues(Arrays.asList(new StringAttributeValue("value1")));
attribute2 = new IdPAttribute("attribute2");
+ attribute2.setValues(Arrays.asList(new StringAttributeValue("value2"), new StringAttributeValue("value3")));
p = new AttributePredicate();
}
@@ -122,4 +125,18 @@
p = new AttributePredicate();
Assert.assertFalse(p.apply(null));
}
+
+ @Test public void testEmptyAttribute() {
+ // no values
+ final IdPAttribute emptyAttribute = new IdPAttribute("emptyAttribute");
+ Assert.assertFalse(p.apply(emptyAttribute));
+
+ // empty values
+ emptyAttribute.setValues(Arrays.asList(StringAttributeValue.valueOf(""), StringAttributeValue.valueOf(null)));
+ Assert.assertFalse(p.apply(emptyAttribute));
+
[... 6 lines stripped ...]
More information about the commits
mailing list