[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