[java-identity-provider] branch master updated: IDP-1472 - Police invalid attribute names in transcoders

Scott Cantor cantor.2 at osu.edu
Tue Dec 17 15:28:17 EST 2019


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=9e789b8fb86f3f0ca9485b2bfa6c14aa87d08f4e

The following commit(s) were added to refs/heads/master by this push:
       new  9e789b8   IDP-1472 - Police invalid attribute names in transcoders
9e789b8 is described below

commit 9e789b8fb86f3f0ca9485b2bfa6c14aa87d08f4e
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Dec 17 14:28:14 2019 -0600

    IDP-1472 - Police invalid attribute names in transcoders
    
    https://issues.shibboleth.net/jira/browse/IDP-1472
---
 .../transcoding/impl/AttributeTranscoderRegistryImpl.java     |  4 +++-
 .../transcoding/impl/AttributeTranscoderRegistryImplTest.java | 11 ++++++++---
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java b/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
index ddd5e24..8b86f23 100644
--- a/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
+++ b/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
@@ -130,7 +130,7 @@ public class AttributeTranscoderRegistryImpl extends AbstractServiceableComponen
         for (final TranscodingRule mapping : mappings) {
             
             final String internalId = StringSupport.trimOrNull(mapping.get(PROP_ID, String.class));
-            if (internalId != null) {
+            if (internalId != null && !IdPAttribute.isInvalidId(internalId)) {
                 final Predicate<?> activationCondition = buildActivationCondition(mapping.getMap());
                 if (activationCondition != null) {
                     mapping.getMap().put(PROP_CONDITION, activationCondition);
@@ -142,6 +142,8 @@ public class AttributeTranscoderRegistryImpl extends AbstractServiceableComponen
                 for (final AttributeTranscoder<?> transcoder : transcoders) {
                     addMapping(internalId, transcoder, mapping.getMap());
                 }
+            } else {
+                log.warn("Ignoring TranscodingRule with invalid id property: {}", internalId);
             }
         }
     }
diff --git a/idp-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java b/idp-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java
index 84a9461..b14c994 100644
--- a/idp-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java
+++ b/idp-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.attribute.transcoding.impl;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -91,11 +90,17 @@ public class AttributeTranscoderRegistryImplTest {
         ruleset4.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
         ruleset4.put("name", "baz");
         
-        registry.setTranscoderRegistry(Arrays.asList(
+        final Map<String,Object> ruleset5 = new HashMap<>();
+        ruleset5.put(AttributeTranscoderRegistry.PROP_ID, "foo bar");
+        ruleset5.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
+        ruleset5.put("name", "baz");
+        
+        registry.setTranscoderRegistry(List.of(
                 new TranscodingRule(ruleset1),
                 new TranscodingRule(ruleset2),
                 new TranscodingRule(ruleset3),
-                new TranscodingRule(ruleset4)));
+                new TranscodingRule(ruleset4),
+                new TranscodingRule(ruleset5)));
         registry.setApplicationContext(new MockApplicationContext());
         registry.initialize();
         

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list