[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