[java-identity-provider] 18/27: Refactor registry API with setters instead of adders.
Scott Cantor
cantor.2 at osu.edu
Fri May 3 14:32:08 EDT 2019
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch feature/IDP-1434
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=dad8d3ae9591b1139c2874bd0f688f1eac8291ac
commit dad8d3ae9591b1139c2874bd0f688f1eac8291ac
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Apr 26 13:08:49 2019 -0400
Refactor registry API with setters instead of adders.
---
.../impl/AttributeTranscoderRegistryImpl.java | 66 ++++++++++----------
.../impl/AttributeTranscoderRegistryImplTest.java | 17 +++---
.../src/main/resources/conf/attribute-registry.xml | 70 +++++-----------------
.../impl/SAML1ByteAttributeTranscoderTest.java | 10 ++--
.../SAML1ScopedStringAttributeTranscoderTest.java | 11 ++--
.../impl/SAML1StringAttributeTranscoderTest.java | 10 ++--
.../impl/SAML2ByteAttributeTranscoderTest.java | 10 ++--
.../SAML2ScopedStringAttributeTranscoderTest.java | 10 ++--
.../impl/SAML2StringAttributeTranscoderTest.java | 10 ++--
.../SAML2XMLObjectAttributeTranscoderTest.java | 10 ++--
.../impl/AddAttributeStatementToAssertionTest.java | 45 ++++++++++----
.../impl/AddAttributeStatementToAssertionTest.java | 42 +++++++++----
12 files changed, 149 insertions(+), 162 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 cf8492d..b55d36c 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
@@ -77,27 +77,16 @@ public class AttributeTranscoderRegistryImpl extends AbstractServiceableComponen
@Override @Nonnull public AttributeTranscoderRegistry getComponent() {
return this;
}
-
- /**
- * Installs registry of naming functions mapped against the types of objects they support.
- *
- * @param <T> type of object
- * @param type class of object
- * @param f naming function to install
- */
- public <T> void addToNamingRegistry(@Nonnull final Class<T> type, @Nonnull final Function<T,String> f) {
- Constraint.isNotNull(type, "Type cannot be null");
- Constraint.isNotNull(f, "Naming function cannot be null");
-
- namingFunctionRegistry.put(type, f);
- }
/**
* Installs registry of naming functions mapped against the types of objects they support.
*
* @param registry map of types to naming functions
*/
- public void addToNamingRegistry(@Nonnull @NonnullElements final Map<Class<?>,Function<?,String>> registry) {
+ public void setNamingRegistry(@Nonnull @NonnullElements final Map<Class<?>,Function<?,String>> registry) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+ namingFunctionRegistry.clear();
if (registry == null) {
return;
@@ -113,33 +102,41 @@ public class AttributeTranscoderRegistryImpl extends AbstractServiceableComponen
/**
* Installs the transcoder mappings en masse.
*
- * <p>Each map entry connects an {@link IdPAttribute} name to the rules for transcoding to/from it.</p>
+ * <p>Each map connects an {@link IdPAttribute} name to the rules for transcoding to/from it.</p>
*
- * @param registry mappings from internal name to transcoding rules
+ * <p>The rules MUST contain at least:</p>
+ * <ul>
+ * <li>{@link #PROP_ID} - an {@link AttributeTranscoder} instance supporting the type</li>
+ * <li>{@link #PROP_TRANSCODER} - an {@link AttributeTranscoder} instance supporting the type</li>
+ * </ul>
+ *
+ * Transcoders will generally require particular properties in their own right to function.
+ *
+ * @param mappings transcoding rulesets
*/
- public void addToTranscoderRegistry(
- @Nonnull @NonnullElements final Map<String,Collection<Map<String,Object>>> registry) {
+ public void setTranscoderRegistry(@Nonnull @NonnullElements final Collection<Map<String,Object>> mappings) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+ transcodingRegistry.clear();
- if (registry == null) {
+ if (mappings == null) {
return;
}
- for (final Map.Entry<String,Collection<Map<String,Object>>> entry : registry.entrySet()) {
+ for (final Map<String,Object> mapping : Collections2.filter(mappings, Predicates.notNull())) {
- final String internalId = StringSupport.trimOrNull(entry.getKey());
- if (internalId != null && entry.getValue() != null && !entry.getValue().isEmpty()) {
+ final Object prop = mapping.get(PROP_ID);
+ final String internalId = StringSupport.trimOrNull(prop instanceof String ? (String) prop : null);
+ if (internalId != null) {
- for (final Map<String,Object> props : Collections2.filter(entry.getValue(), Predicates.notNull())) {
-
- final Predicate activationCondition = buildActivationCondition(props);
- if (activationCondition != null) {
- props.put(PROP_CONDITION, activationCondition);
- } else {
- props.remove(PROP_CONDITION);
- }
-
- addMapping(internalId, props);
+ final Predicate activationCondition = buildActivationCondition(mapping);
+ if (activationCondition != null) {
+ mapping.put(PROP_CONDITION, activationCondition);
+ } else {
+ mapping.remove(PROP_CONDITION);
}
+
+ addMapping(internalId, mapping);
}
}
}
@@ -202,7 +199,6 @@ public class AttributeTranscoderRegistryImpl extends AbstractServiceableComponen
*
* <p>The rules MUST contain at least:</p>
* <ul>
- * <li>{@link #PROP_TYPE} - a source/target class for the transcoding rules</li>
* <li>{@link #PROP_TRANSCODER} - an {@link AttributeTranscoder} instance supporting the type</li>
* </ul>
*
@@ -238,7 +234,7 @@ public class AttributeTranscoderRegistryImpl extends AbstractServiceableComponen
log.debug("Attribute mapping: {} <-> {} via {}", id, targetName, transcoder.getClass().getSimpleName());
- // Install mapping back to IdPAttribute's name.
+ // Install mapping back to IdPAttribute's trimmed name.
copy.setProperty(PROP_ID, id);
Multimap<Class<?>,Properties> rulesetsForIdPName = transcodingRegistry.get(id);
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 7ce9009..fcf1dec 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
@@ -56,30 +56,33 @@ public class AttributeTranscoderRegistryImplTest {
registry = new AttributeTranscoderRegistryImpl();
registry.setId("test");
- registry.addToNamingRegistry(Pair.class, (Pair p) -> "{Pair}" + p.getFirst().toString());
+ registry.setNamingRegistry(Collections.singletonMap(Pair.class, (Pair p) -> "{Pair}" + p.getFirst().toString()));
final PairTranscoder transcoder = new PairTranscoder();
transcoder.initialize();
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
-
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, "foo");
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put("name", "bar");
final Map<String,Object> ruleset2 = new HashMap<>();
+ ruleset2.put(AttributeTranscoderRegistry.PROP_ID, "foo");
ruleset2.put(AttributeTranscoderRegistry.PROP_TRANSCODER, "net.shibboleth.idp.attribute.transcoding.impl.PairTranscoder");
ruleset2.put("name", "baz");
final Map<String,Object> ruleset3 = new HashMap<>();
+ ruleset3.put(AttributeTranscoderRegistry.PROP_ID, "foo");
ruleset3.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset3.put(AttributeTranscoderRegistry.PROP_CONDITION, Predicates.alwaysFalse());
ruleset3.put("name", "ban");
+
+ final Map<String,Object> ruleset4 = new HashMap<>();
+ ruleset4.put(AttributeTranscoderRegistry.PROP_ID, "foo2");
+ ruleset4.put(AttributeTranscoderRegistry.PROP_TRANSCODER, "net.shibboleth.idp.attribute.transcoding.impl.PairTranscoder");
+ ruleset4.put("name", "baz");
- mappings.put("foo", Arrays.asList(ruleset1, ruleset2, ruleset3));
- mappings.put("foo2", Collections.singletonList(ruleset2));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Arrays.asList(ruleset1, ruleset2, ruleset3, ruleset4));
registry.initialize();
}
diff --git a/idp-conf/src/main/resources/conf/attribute-registry.xml b/idp-conf/src/main/resources/conf/attribute-registry.xml
index d52956d..ef2e1ec 100644
--- a/idp-conf/src/main/resources/conf/attribute-registry.xml
+++ b/idp-conf/src/main/resources/conf/attribute-registry.xml
@@ -13,7 +13,9 @@
default-destroy-method="destroy">
<bean id="AttributeTranscoderRegistry"
- class="net.shibboleth.idp.attribute.transcoding.impl.AttributeTranscoderRegistryImpl" />
+ class="net.shibboleth.idp.attribute.transcoding.impl.AttributeTranscoderRegistryImpl"
+ p:namingRegistry-ref="DefaultNamingRegistry"
+ p:transcoderRegistry-ref="DefaultAttributeRegistry" />
<bean id="SAML2StringTranscoder"
class="net.shibboleth.idp.saml.attribute.transcoding.impl.SAML2StringAttributeTranscoder" />
@@ -33,51 +35,21 @@
<bean id="SAML1XMLObjectTranscoder"
class="net.shibboleth.idp.saml.attribute.transcoding.impl.SAML1XMLObjectAttributeTranscoder" />
- <util:map id="SAML2AttributeRegistry">
+ <util:list id="DefaultAttributeRegistry">
- <entry key="uid">
- <list>
- <map>
- <entry key="transcoder" value-ref="SAML2StringTranscoder" />
- <entry key="name" value="urn:oid:0.9.2342.19200300.100.1.1" />
- </map>
- </list>
- </entry>
-
- </util:map>
-
- <util:map id="SAML1AttributeRegistry">
-
- <entry key="uid">
- <list>
- <map>
- <entry key="transcoder" value-ref="SAML1StringTranscoder" />
- <entry key="name" value="urn:mace:dir:attribute-def:uid" />
- </map>
- </list>
- </entry>
-
- </util:map>
-
- <bean class="org.springframework.beans.factory.config.MethodInvokingBean"
- p:targetObject-ref="AttributeTranscoderRegistry"
- p:targetMethod="addToTranscoderRegistry">
- <property name="arguments">
- <list>
- <ref bean="SAML2AttributeRegistry" />
- </list>
- </property>
- </bean>
+ <map>
+ <entry key="id" value="uid" />
+ <entry key="transcoder" value-ref="SAML2StringTranscoder" />
+ <entry key="name" value="urn:oid:0.9.2342.19200300.100.1.1" />
+ </map>
+
+ <map>
+ <entry key="id" value="uid" />
+ <entry key="transcoder" value-ref="SAML1StringTranscoder" />
+ <entry key="name" value="urn:mace:dir:attribute-def:uid" />
+ </map>
- <bean class="org.springframework.beans.factory.config.MethodInvokingBean"
- p:targetObject-ref="AttributeTranscoderRegistry"
- p:targetMethod="addToTranscoderRegistry">
- <property name="arguments">
- <list>
- <ref bean="SAML1AttributeRegistry" />
- </list>
- </property>
- </bean>
+ </util:list>
<util:map id="DefaultNamingRegistry">
<entry key="#{T(org.opensaml.saml.saml2.core.Attribute)}">
@@ -88,14 +60,4 @@
</entry>
</util:map>
- <bean class="org.springframework.beans.factory.config.MethodInvokingBean"
- p:targetObject-ref="AttributeTranscoderRegistry"
- p:targetMethod="addToNamingRegistry">
- <property name="arguments">
- <list>
- <ref bean="DefaultNamingRegistry" />
- </list>
- </property>
- </bean>
-
</beans>
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java
index 770a60d..2fcc55f 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java
@@ -89,19 +89,17 @@ public class SAML1ByteAttributeTranscoderTest extends OpenSAMLInitBaseTestCase {
final SAML1ByteAttributeTranscoder transcoder = new SAML1ByteAttributeTranscoder();
transcoder.initialize();
- registry.addToNamingRegistry(transcoder.getEncodedType(), new AbstractSAML1AttributeTranscoder.NamingFunction());
-
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
+ registry.setNamingRegistry(Collections.singletonMap(transcoder.getEncodedType(),
+ new AbstractSAML1AttributeTranscoder.NamingFunction()));
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, ATTR_NAME);
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_ENCODE_TYPE, true);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
ruleset1.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, ATTR_NAMESPACE);
- mappings.put(ATTR_NAME, Collections.singletonList(ruleset1));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Collections.singletonList(ruleset1));
registry.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java
index 23f226c..9fd54a3 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java
@@ -96,22 +96,19 @@ public class SAML1ScopedStringAttributeTranscoderTest extends OpenSAMLInitBaseTe
final SAML1ScopedStringAttributeTranscoder transcoder = new SAML1ScopedStringAttributeTranscoder();
transcoder.initialize();
- registry.addToNamingRegistry(transcoder.getEncodedType(), new AbstractSAML1AttributeTranscoder.NamingFunction());
-
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
+ registry.setNamingRegistry(Collections.singletonMap(transcoder.getEncodedType(),
+ new AbstractSAML1AttributeTranscoder.NamingFunction()));
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, ATTR_NAME);
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_ENCODE_TYPE, true);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
- ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
ruleset1.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, ATTR_NAMESPACE);
ruleset1.put(SAML1ScopedStringAttributeTranscoder.PROP_SCOPE_DELIMITER, DELIMITER);
ruleset1.put(SAML1ScopedStringAttributeTranscoder.PROP_SCOPE_TYPE, "attribute");
- mappings.put(ATTR_NAME, Collections.singletonList(ruleset1));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Collections.singletonList(ruleset1));
registry.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java
index 88a3841..2ff0260 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java
@@ -86,19 +86,17 @@ public class SAML1StringAttributeTranscoderTest extends OpenSAMLInitBaseTestCase
final SAML1StringAttributeTranscoder transcoder = new SAML1StringAttributeTranscoder();
transcoder.initialize();
- registry.addToNamingRegistry(transcoder.getEncodedType(), new AbstractSAML1AttributeTranscoder.NamingFunction());
-
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
+ registry.setNamingRegistry(Collections.singletonMap(transcoder.getEncodedType(),
+ new AbstractSAML1AttributeTranscoder.NamingFunction()));
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, ATTR_NAME);
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_ENCODE_TYPE, true);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
ruleset1.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, ATTR_NAMESPACE);
- mappings.put(ATTR_NAME, Collections.singletonList(ruleset1));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Collections.singletonList(ruleset1));
registry.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
index 2536976..3dbd713 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
@@ -90,20 +90,18 @@ public class SAML2ByteAttributeTranscoderTest extends OpenSAMLInitBaseTestCase {
final SAML2ByteAttributeTranscoder transcoder = new SAML2ByteAttributeTranscoder();
transcoder.initialize();
- registry.addToNamingRegistry(transcoder.getEncodedType(), new AbstractSAML2AttributeTranscoder.NamingFunction());
-
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
+ registry.setNamingRegistry(Collections.singletonMap(transcoder.getEncodedType(),
+ new AbstractSAML2AttributeTranscoder.NamingFunction()));
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, ATTR_NAME);
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_ENCODE_TYPE, true);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
ruleset1.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, ATTR_NAMEFORMAT);
ruleset1.put(AbstractSAML2AttributeTranscoder.PROP_FRIENDLY_NAME, ATTR_FRIENDLYNAME);
- mappings.put(ATTR_NAME, Collections.singletonList(ruleset1));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Collections.singletonList(ruleset1));
registry.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
index aaf9833..85fe737 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
@@ -90,11 +90,11 @@ public class SAML2ScopedStringAttributeTranscoderTest extends OpenSAMLInitBaseTe
final SAML2ScopedStringAttributeTranscoder transcoder = new SAML2ScopedStringAttributeTranscoder();
transcoder.initialize();
- registry.addToNamingRegistry(transcoder.getEncodedType(), new AbstractSAML2AttributeTranscoder.NamingFunction());
-
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
+ registry.setNamingRegistry(Collections.singletonMap(transcoder.getEncodedType(),
+ new AbstractSAML2AttributeTranscoder.NamingFunction()));
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, ATTR_NAME);
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_ENCODE_TYPE, true);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
@@ -103,9 +103,7 @@ public class SAML2ScopedStringAttributeTranscoderTest extends OpenSAMLInitBaseTe
ruleset1.put(SAML2ScopedStringAttributeTranscoder.PROP_SCOPE_DELIMITER, DELIMITER);
ruleset1.put(SAML2ScopedStringAttributeTranscoder.PROP_SCOPE_TYPE, "inline");
- mappings.put(ATTR_NAME, Collections.singletonList(ruleset1));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Collections.singletonList(ruleset1));
registry.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
index e81b92a..123fb73 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
@@ -87,20 +87,18 @@ public class SAML2StringAttributeTranscoderTest extends OpenSAMLInitBaseTestCase
final SAML2StringAttributeTranscoder transcoder = new SAML2StringAttributeTranscoder();
transcoder.initialize();
- registry.addToNamingRegistry(transcoder.getEncodedType(), new AbstractSAML2AttributeTranscoder.NamingFunction());
-
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
+ registry.setNamingRegistry(Collections.singletonMap(transcoder.getEncodedType(),
+ new AbstractSAML2AttributeTranscoder.NamingFunction()));
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, ATTR_NAME);
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_ENCODE_TYPE, true);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
ruleset1.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, ATTR_NAMEFORMAT);
ruleset1.put(AbstractSAML2AttributeTranscoder.PROP_FRIENDLY_NAME, ATTR_FRIENDLYNAME);
- mappings.put(ATTR_NAME, Collections.singletonList(ruleset1));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Collections.singletonList(ruleset1));
registry.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
index 0e532c2..5e55665 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
@@ -94,20 +94,18 @@ public class SAML2XMLObjectAttributeTranscoderTest extends OpenSAMLInitBaseTestC
final SAML2XMLObjectAttributeTranscoder transcoder = new SAML2XMLObjectAttributeTranscoder();
transcoder.initialize();
- registry.addToNamingRegistry(transcoder.getEncodedType(), new AbstractSAML2AttributeTranscoder.NamingFunction());
-
- final Map<String,Collection<Map<String,Object>>> mappings = new HashMap<>();
+ registry.setNamingRegistry(Collections.singletonMap(transcoder.getEncodedType(),
+ new AbstractSAML2AttributeTranscoder.NamingFunction()));
final Map<String,Object> ruleset1 = new HashMap<>();
+ ruleset1.put(AttributeTranscoderRegistry.PROP_ID, ATTR_NAME);
ruleset1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_ENCODE_TYPE, true);
ruleset1.put(AbstractSAMLAttributeTranscoder.PROP_NAME, ATTR_NAME);
ruleset1.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, ATTR_NAMEFORMAT);
ruleset1.put(AbstractSAML2AttributeTranscoder.PROP_FRIENDLY_NAME, ATTR_FRIENDLYNAME);
- mappings.put(ATTR_NAME, Collections.singletonList(ruleset1));
-
- registry.addToTranscoderRegistry(mappings);
+ registry.setTranscoderRegistry(Collections.singletonList(ruleset1));
registry.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java
index 7d19bc3..ea36df9 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java
@@ -18,7 +18,6 @@
package net.shibboleth.idp.saml.saml1.profile.impl;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -97,34 +96,34 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
registry = new AttributeTranscoderRegistryImpl();
registry.setId("test");
- registry.initialize();
- registry.addToNamingRegistry(AttributeDesignator.class, new AbstractSAML1AttributeTranscoder.NamingFunction());
+ registry.setNamingRegistry(Collections.singletonMap(AttributeDesignator.class,
+ new AbstractSAML1AttributeTranscoder.NamingFunction()));
final SAML1StringAttributeTranscoder transcoder = new SAML1StringAttributeTranscoder();
transcoder.initialize();
- final Map<String,Collection<Map<String,Object>>> rulesets = new HashMap<>();
-
final Map<String,Object> rule1_1 = new HashMap<>();
+ rule1_1.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule1_1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule1_1.put(AbstractSAML1AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule1_1.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, MY_NAMESPACE);
final Map<String,Object> rule1_2 = new HashMap<>();
+ rule1_2.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule1_2.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule1_2.put(AbstractSAML1AttributeTranscoder.PROP_NAME, MY_ALTNAME_1);
rule1_2.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, MY_NAMESPACE);
final Map<String,Object> rule2_1 = new HashMap<>();
+ rule2_1.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_2);
rule2_1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule2_1.put(AbstractSAML1AttributeTranscoder.PROP_NAME, MY_NAME_2);
rule2_1.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, MY_NAMESPACE);
- rulesets.put(MY_NAME_1, Arrays.asList(rule1_1, rule1_2));
- rulesets.put(MY_NAME_2, Collections.singletonList(rule2_1));
-
- registry.addToTranscoderRegistry(rulesets);
+ registry.setTranscoderRegistry(Arrays.asList(rule1_1, rule1_2, rule2_1));
+
+ registry.initialize();
action = new AddAttributeStatementToAssertion();
action.setTranscoderRegistry(new RegistryService(registry));
@@ -170,15 +169,26 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
/** Test that the action ignores attribute encoding errors. */
@Test public void testIgnoreAttributeEncodingErrors() throws Exception {
+
+ final AttributeTranscoderRegistryImpl localregistry = new AttributeTranscoderRegistryImpl();
+ localregistry.setId("test");
+
+ localregistry.setNamingRegistry(Collections.singletonMap(AttributeDesignator.class,
+ new AbstractSAML1AttributeTranscoder.NamingFunction()));
+
final MockSAML1StringAttributeTranscoder transcoder = new MockSAML1StringAttributeTranscoder();
transcoder.initialize();
-
+
final Map<String,Object> rule = new HashMap<>();
+ rule.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule.put(AbstractSAML1AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, MY_NAMESPACE);
- registry.addToTranscoderRegistry(Collections.singletonMap(MY_NAME_1, Collections.singletonList(rule)));
+ localregistry.setTranscoderRegistry(Collections.singletonList(rule));
+ localregistry.initialize();
+
+ action.setTranscoderRegistry(new RegistryService(localregistry));
final IdPAttribute attribute = new IdPAttribute(MY_NAME_1);
attribute.setValues(Arrays.asList(new StringAttributeValue(MY_VALUE_1)));
@@ -195,15 +205,26 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
/** Test that the action returns the correct transition when an attribute encoding error occurs. */
@Test public void failOnAttributeEncodingErrors() throws Exception {
+
+ final AttributeTranscoderRegistryImpl localregistry = new AttributeTranscoderRegistryImpl();
+ localregistry.setId("test");
+
+ localregistry.setNamingRegistry(Collections.singletonMap(AttributeDesignator.class,
+ new AbstractSAML1AttributeTranscoder.NamingFunction()));
+
final MockSAML1StringAttributeTranscoder transcoder = new MockSAML1StringAttributeTranscoder();
transcoder.initialize();
final Map<String,Object> rule = new HashMap<>();
+ rule.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule.put(AbstractSAML1AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule.put(AbstractSAML1AttributeTranscoder.PROP_NAMESPACE, MY_NAMESPACE);
- registry.addToTranscoderRegistry(Collections.singletonMap(MY_NAME_1, Collections.singletonList(rule)));
+ localregistry.setTranscoderRegistry(Collections.singletonList(rule));
+ localregistry.initialize();
+
+ action.setTranscoderRegistry(new RegistryService(localregistry));
final IdPAttribute attribute = new IdPAttribute(MY_NAME_1);
attribute.setValues(Arrays.asList(new StringAttributeValue(MY_VALUE_1)));
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java
index 5843eb1..51b2bb3 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java
@@ -18,7 +18,6 @@
package net.shibboleth.idp.saml.saml2.profile.impl;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -96,34 +95,33 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
registry = new AttributeTranscoderRegistryImpl();
registry.setId("test");
- registry.initialize();
- registry.addToNamingRegistry(Attribute.class, new AbstractSAML2AttributeTranscoder.NamingFunction());
+ registry.setNamingRegistry(Collections.singletonMap(Attribute.class,
+ new AbstractSAML2AttributeTranscoder.NamingFunction()));
final SAML2StringAttributeTranscoder transcoder = new SAML2StringAttributeTranscoder();
transcoder.initialize();
- final Map<String,Collection<Map<String,Object>>> rulesets = new HashMap<>();
-
final Map<String,Object> rule1_1 = new HashMap<>();
+ rule1_1.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule1_1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule1_1.put(AbstractSAML2AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule1_1.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, MY_NAMESPACE);
final Map<String,Object> rule1_2 = new HashMap<>();
+ rule1_2.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule1_2.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule1_2.put(AbstractSAML2AttributeTranscoder.PROP_NAME, MY_ALTNAME_1);
rule1_2.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, MY_NAMESPACE);
final Map<String,Object> rule2_1 = new HashMap<>();
+ rule2_1.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_2);
rule2_1.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule2_1.put(AbstractSAML2AttributeTranscoder.PROP_NAME, MY_NAME_2);
rule2_1.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, MY_NAMESPACE);
- rulesets.put(MY_NAME_1, Arrays.asList(rule1_1, rule1_2));
- rulesets.put(MY_NAME_2, Collections.singletonList(rule2_1));
-
- registry.addToTranscoderRegistry(rulesets);
+ registry.setTranscoderRegistry(Arrays.asList(rule1_1, rule1_2, rule2_1));
+ registry.initialize();
action = new AddAttributeStatementToAssertion();
action.setTranscoderRegistry(new RegistryService(registry));
@@ -169,15 +167,26 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
/** Test that the action ignores attribute encoding errors. */
@Test public void testIgnoreAttributeEncodingErrors() throws Exception {
+
+ final AttributeTranscoderRegistryImpl localregistry = new AttributeTranscoderRegistryImpl();
+ localregistry.setId("test");
+
+ localregistry.setNamingRegistry(Collections.singletonMap(Attribute.class,
+ new AbstractSAML2AttributeTranscoder.NamingFunction()));
+
final MockSAML2StringAttributeTranscoder transcoder = new MockSAML2StringAttributeTranscoder();
transcoder.initialize();
final Map<String,Object> rule = new HashMap<>();
rule.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
+ rule.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule.put(AbstractSAML2AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, MY_NAMESPACE);
- registry.addToTranscoderRegistry(Collections.singletonMap(MY_NAME_1, Collections.singletonList(rule)));
+ localregistry.setTranscoderRegistry(Collections.singletonList(rule));
+ localregistry.initialize();
+
+ action.setTranscoderRegistry(new RegistryService(localregistry));
final IdPAttribute attribute = new IdPAttribute(MY_NAME_1);
attribute.setValues(Arrays.asList(new StringAttributeValue(MY_VALUE_1)));
@@ -194,15 +203,26 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
/** Test that the action returns the correct transition when an attribute encoding error occurs. */
@Test public void failOnAttributeEncodingErrors() throws Exception {
+
+ final AttributeTranscoderRegistryImpl localregistry = new AttributeTranscoderRegistryImpl();
+ localregistry.setId("test");
+
+ localregistry.setNamingRegistry(Collections.singletonMap(Attribute.class,
+ new AbstractSAML2AttributeTranscoder.NamingFunction()));
+
final MockSAML2StringAttributeTranscoder transcoder = new MockSAML2StringAttributeTranscoder();
transcoder.initialize();
final Map<String,Object> rule = new HashMap<>();
+ rule.put(AttributeTranscoderRegistry.PROP_ID, MY_NAME_1);
rule.put(AttributeTranscoderRegistry.PROP_TRANSCODER, transcoder);
rule.put(AbstractSAML2AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule.put(AbstractSAML2AttributeTranscoder.PROP_NAME_FORMAT, MY_NAMESPACE);
- registry.addToTranscoderRegistry(Collections.singletonMap(MY_NAME_1, Collections.singletonList(rule)));
+ localregistry.setTranscoderRegistry(Collections.singletonList(rule));
+ localregistry.initialize();
+
+ action.setTranscoderRegistry(new RegistryService(localregistry));
final IdPAttribute attribute = new IdPAttribute(MY_NAME_1);
attribute.setValues(Arrays.asList(new StringAttributeValue(MY_VALUE_1)));
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list