[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-impl/src: main/java/net/shibboleth/idp/attribute/res...

noreply at shibboleth.net noreply at shibboleth.net
Fri Mar 3 09:36:46 EST 2017


Author: rdw
Date: Fri Mar  3 09:36:45 2017
New Revision: 8641

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8641&view=rev
Log:
IDP-1131 

https://issues.shibboleth.net/jira/browse/IDP-1131

test for no attribute values.

Modified:
    trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java
    trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java

Modified: trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java?rev=8641&r1=8640&r2=8641&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java	(original)
+++ trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java	Fri Mar  3 09:36:45 2017
@@ -93,8 +93,12 @@
             @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
 
         final ProfileRequestContext prc = prcLookupStrategy.apply(resolutionContext);
-        final List<IdPAttributeValue<?>> results = attributeValuesFunction.apply(prc);
+        @Nullable final List<IdPAttributeValue<?>> results = attributeValuesFunction.apply(prc);
 
+        if (null == results) {
+            log.debug("{} Generated no values.", getLogPrefix());
+            return null;
+        }
         log.debug("{} Generated {} values.", getLogPrefix(), results.size());
         log.trace("{} Values:", getLogPrefix(), results);
         final IdPAttribute attribute = new IdPAttribute(getId());

Modified: trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java?rev=8641&r1=8640&r2=8641&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java	(original)
+++ trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java	Fri Mar  3 09:36:45 2017
@@ -18,6 +18,7 @@
 package net.shibboleth.idp.attribute.resolver.ad.impl;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -82,4 +83,37 @@
         Assert.assertTrue(foo.contains(new StringAttributeValue(SIMPLE_VALUE)));
         Assert.assertTrue(foo.contains(new StringAttributeValue(SIMPLE_VALUE + "2")));
     }
+    
+    @Test public void empty() throws ComponentInitializationException, ResolutionException {
+        final List<IdPAttributeValue<String>> list = Collections.EMPTY_LIST;
+        
+        final IdPAttribute attr = new IdPAttribute("wibble");
+        attr.setValues(list);
+
+        final SubjectDerivedAttributeValuesFunction ctxValueFunction = new SubjectDerivedAttributeValuesFunction();
+        ctxValueFunction.setId("pDaD");
+        final IdPAttributePrincipalValuesFunction fn = new IdPAttributePrincipalValuesFunction();
+        fn.setAttributeName("wibble");
+        fn.doInitialize();
+        ctxValueFunction.setAttributeValuesFunction(fn);
+        
+        final ContextDerivedAttributeDefinition defn = new ContextDerivedAttributeDefinition();
+        defn.setAttributeValuesFunction(ctxValueFunction);
+        defn.setId("pDAD");
+        defn.initialize();
+
+        final AttributeResolutionContext ctx =
+                TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
+                        TestSources.SP_ENTITY_ID);
+        final SubjectContext sc = ctx.getParent().getSubcontext(SubjectContext.class, true);
+        final Map<String, AuthenticationResult> authnResults = sc.getAuthenticationResults();
+        final Subject subject = new Subject();
+        subject.getPrincipals().add(new IdPAttributePrincipal(attr));
+        subject.getPrincipals().add(new AuthenticationMethodPrincipal(SIMPLE_VALUE + "2"));
+        authnResults.put("one", new AuthenticationResult("1", subject));
+        
+        final IdPAttribute result = defn.resolve(ctx);
+        Assert.assertNull(result);
+    }
+
 }



More information about the commits mailing list