[java-identity-provider] branch feature/IDP-1434 updated: IDP-1434 More care over empty properties

Rod Widdowson rdw at steadingsoftware.com
Tue May 7 10:33:53 EDT 2019


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

rdw 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=6356499b2667b9c6af285cfeffbbe39e8c6d51fb

The following commit(s) were added to refs/heads/feature/IDP-1434 by this push:
       new  6356499   IDP-1434 More care over empty properties
6356499 is described below

commit 6356499b2667b9c6af285cfeffbbe39e8c6d51fb
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue May 7 15:32:11 2019 +0100

    IDP-1434 More care over empty properties
    
    https://issues.shibboleth.net/jira/browse/IDP-1434
---
 .../enc/BaseSAML1AttributeEncoderParser.java       | 15 +++++-------
 .../enc/BaseSAML2AttributeEncoderParser.java       | 16 +++++--------
 .../spring/BaseEncoderDefinitionParserTest.java    | 28 ++++++++++++----------
 .../enc/SAML1StringAttributeEncoderParserTest.java |  2 +-
 .../enc/SAML2Base64AttributeEncoderParserTest.java |  2 +-
 .../resolver/spring/enc/resolver/saml1String.xml   |  2 +-
 .../resolver/spring/enc/resolver/saml2Base64.xml   |  2 +-
 7 files changed, 31 insertions(+), 36 deletions(-)

diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML1AttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML1AttributeEncoderParser.java
index 132f2a6..95af88e 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML1AttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML1AttributeEncoderParser.java
@@ -21,15 +21,15 @@ import java.util.Map;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.saml.attribute.transcoding.SAML1AttributeTranscoder;
-import net.shibboleth.idp.saml.attribute.transcoding.SAMLAttributeTranscoder;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
 import org.springframework.beans.factory.BeanDefinitionStoreException;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
+import net.shibboleth.ext.spring.util.SpringSupport;
+import net.shibboleth.idp.saml.attribute.transcoding.SAML1AttributeTranscoder;
+import net.shibboleth.idp.saml.attribute.transcoding.SAMLAttributeTranscoder;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
 /**
  * Base class for Spring bean definition parser for SAML 1 attribute encoders.
  */
@@ -54,10 +54,7 @@ public abstract class BaseSAML1AttributeEncoderParser extends BaseAttributeEncod
 
         final String value = StringSupport.trimOrNull(config.getAttributeNS(null, "encodeType"));
         if (value != null) {
-            final BeanDefinitionBuilder booleanBuilder =
-                BeanDefinitionBuilder.rootBeanDefinition(Boolean.class, "valueOf");
-            booleanBuilder.addConstructorArgValue(value);
-            rule.put(SAMLAttributeTranscoder.PROP_ENCODE_TYPE,booleanBuilder.getBeanDefinition());
+            rule.put(SAMLAttributeTranscoder.PROP_ENCODE_TYPE,SpringSupport.getStringValueAsBoolean(value));
         }
     }
     
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML2AttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML2AttributeEncoderParser.java
index ced8e4b..2410a8a 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML2AttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseSAML2AttributeEncoderParser.java
@@ -21,15 +21,15 @@ import java.util.Map;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.saml.attribute.transcoding.SAML2AttributeTranscoder;
-import net.shibboleth.idp.saml.attribute.transcoding.SAMLAttributeTranscoder;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
 import org.springframework.beans.factory.BeanDefinitionStoreException;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
+import net.shibboleth.ext.spring.util.SpringSupport;
+import net.shibboleth.idp.saml.attribute.transcoding.SAML2AttributeTranscoder;
+import net.shibboleth.idp.saml.attribute.transcoding.SAMLAttributeTranscoder;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
 /**
  * Base class for Spring bean definition parser for SAML 1 attribute encoders.
  */
@@ -59,11 +59,7 @@ public abstract class BaseSAML2AttributeEncoderParser extends BaseAttributeEncod
         
         final String value = StringSupport.trimOrNull(config.getAttributeNS(null, "encodeType"));
         if (value != null) {
-            final BeanDefinitionBuilder booleanBuilder =
-                BeanDefinitionBuilder.rootBeanDefinition(Boolean.class, "valueOf");
-            booleanBuilder.addConstructorArgValue(value);
-                
-            rule.put(SAMLAttributeTranscoder.PROP_ENCODE_TYPE,booleanBuilder.getBeanDefinition());
+            rule.put(SAMLAttributeTranscoder.PROP_ENCODE_TYPE,SpringSupport.getStringValueAsBoolean(value));
         }
     }
 }
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseEncoderDefinitionParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseEncoderDefinitionParserTest.java
index 44e0c05..a38f64d 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseEncoderDefinitionParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseEncoderDefinitionParserTest.java
@@ -56,17 +56,16 @@ public abstract class BaseEncoderDefinitionParserTest extends BaseAttributeDefin
 
         final GenericApplicationContext context = new GenericApplicationContext();
 
-        if (activationValue != null || encodeType != null) {
-            final MockPropertySource mockEnvVars = new MockPropertySource();
-            if (activationValue != null) {
-                mockEnvVars.setProperty("the.activation.property", activationValue);
-            }
-            if (encodeType != null) {
-                mockEnvVars.setProperty("the.encodeType.property", encodeType);
-            }
-            final MutablePropertySources propertySources = context.getEnvironment().getPropertySources();
-            propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockEnvVars);
+        final MockPropertySource mockEnvVars = new MockPropertySource();
+        if (activationValue != null) {
+            mockEnvVars.setProperty("the.activation.property", activationValue);
         }
+        if (encodeType != null) {
+            mockEnvVars.setProperty("the.encodeType.property", encodeType);
+        }
+        mockEnvVars.setProperty("the.empty.property", "");
+        final MutablePropertySources propertySources = context.getEnvironment().getPropertySources();
+        propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockEnvVars);
 
         return getAttributeTranscoderRule(fileName, context);
     }
@@ -74,7 +73,7 @@ public abstract class BaseEncoderDefinitionParserTest extends BaseAttributeDefin
     protected Collection<Map<String,Object>> getAttributeTranscoderRule(final String fileName, final GenericApplicationContext context) {
 
         setTestContext(context);
-        context.setDisplayName("ApplicationContext for encocder");
+        context.setDisplayName("ApplicationContext for enccoder");
 
         return getBean(ENCODER_FILE_PATH + fileName, Collection.class, context);
 
@@ -82,8 +81,11 @@ public abstract class BaseEncoderDefinitionParserTest extends BaseAttributeDefin
 
     static protected void checkEncodeType(final Map<String,Object> rule, boolean expectedValue) {
         final Object encodeType = rule.getOrDefault(PROP_ENCODE_TYPE, Boolean.TRUE);
-        assertTrue(encodeType instanceof Boolean);
-        assertTrue(encodeType.equals(expectedValue));
+        if (encodeType instanceof Boolean) {
+            assertTrue(encodeType.equals(expectedValue));
+        } else {
+            assertTrue(expectedValue);
+        }
     }
     
     abstract protected void testWithProperties(final boolean activation, final Boolean encodeType);
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringAttributeEncoderParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringAttributeEncoderParserTest.java
index 86cc6ca..f6de6f8 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringAttributeEncoderParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringAttributeEncoderParserTest.java
@@ -53,7 +53,7 @@ public class SAML1StringAttributeEncoderParserTest extends BaseEncoderDefinition
         assertEquals(rule.get(SAMLAttributeTranscoder.PROP_NAME), "SAML1_STRING_ATTRIBUTE_NAME");
         assertEquals(rule.get(SAML1AttributeTranscoder.PROP_NAMESPACE), "SAML1_STRING_ATTRIBUTE_NAME_SPACE");
         assertEquals(activation, ((Predicate) rule.get(AttributeTranscoderRegistry.PROP_CONDITION)).test(null));
-        checkEncodeType(rule, encodeType!=null ? encodeType : true);
+        checkEncodeType(rule, true);
     }
 
     
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2Base64AttributeEncoderParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2Base64AttributeEncoderParserTest.java
index 300bdfc..90d3a80 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2Base64AttributeEncoderParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2Base64AttributeEncoderParserTest.java
@@ -54,7 +54,7 @@ public class SAML2Base64AttributeEncoderParserTest extends BaseEncoderDefinition
         assertEquals(rule.get(SAML2AttributeTranscoder.PROP_NAME_FORMAT), "Saml2Base64_ATTRIBUTE_NAME_FORMAT");
         assertEquals(rule.get(SAML2AttributeTranscoder.PROP_FRIENDLY_NAME), "Saml2Base64_ATTRIBUTE_FRIENDLY_NAME");
         assertEquals(activation, ((Predicate) rule.get(AttributeTranscoderRegistry.PROP_CONDITION)).test(null));
-        checkEncodeType(rule, encodeType!=null ? encodeType : true);
+        checkEncodeType(rule, true);
     }
     
     @Test public void defaultCase() {
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml1String.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml1String.xml
index 034e593..2f07950 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml1String.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml1String.xml
@@ -4,7 +4,7 @@
 	xmlns="urn:mace:shibboleth:2.0:resolver"
 	name="SAML1_STRING_ATTRIBUTE_NAME" 
 	namespace="SAML1_STRING_ATTRIBUTE_NAME_SPACE"
-	encodeType="%{the.encodeType.property:true}"
+	encodeType="%{the.empty.property}"
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd">
 
     <ActivationConditionScript>
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml2Base64.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml2Base64.xml
index 931d44d..bf07b56 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml2Base64.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/resolver/saml2Base64.xml
@@ -5,7 +5,7 @@
 	name="Saml2Base64_ATTRIBUTE_NAME" 
 	nameFormat="Saml2Base64_ATTRIBUTE_NAME_FORMAT"
 	friendlyName="Saml2Base64_ATTRIBUTE_FRIENDLY_NAME"
-	encodeType="%{the.encodeType.property:true}"
+	encodeType="%{the.empty.property}"
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd">
 
     <ActivationConditionScript>

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


More information about the commits mailing list