[java-identity-provider] 02/03: IDP-1450 Revert permissive handling of empty boolean attributes.

Rod Widdowson rdw at steadingsoftware.com
Mon Jul 22 10:36:06 EDT 2019


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

rdw 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=0efa5b3168117cd7c8caaa6bec84395365eb4a9d

commit 0efa5b3168117cd7c8caaa6bec84395365eb4a9d
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Jul 22 14:38:48 2019 +0100

    IDP-1450 Revert permissive handling of empty boolean attributes.
    
    https://issues.shibboleth.net/jira/browse/IDP-1450
    
    Attribute Resolver
---
 .../ad/mapped/impl/MappedAttributeDefinition.java  | 16 ------------
 .../resolver/ad/mapped/impl/SourceValue.java       | 30 +++++-----------------
 .../resolver/dc/impl/SubjectDataConnector.java     | 29 ++++-----------------
 .../dc/ldap/impl/ConnectionFactoryValidator.java   | 10 ++++----
 .../resolver/ad/mapped/impl/SourceValueTest.java   |  2 --
 .../impl/MappedAttributeDefinitionParser.java      |  2 +-
 .../spring/ad/mapped/impl/SourceValueParser.java   |  5 ++--
 .../spring/dc/impl/SubjectDataConnectorParser.java |  5 ++--
 .../dc/ldap/impl/LDAPDataConnectorParser.java      |  2 +-
 .../dc/rdbms/impl/RDBMSDataConnectorParser.java    |  3 ++-
 .../impl/AttributeResolverServiceStrategy.java     |  6 +----
 .../MappedAttributeDefinitionParserTest.java       |  3 ++-
 .../spring/ad/mapped/SourceValueParserTest.java    |  5 ++--
 .../spring/dc/SubjectDataConnectorParserTest.java  |  3 ++-
 14 files changed, 33 insertions(+), 88 deletions(-)

diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java
index 360021a..beea056 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java
@@ -143,22 +143,6 @@ public class MappedAttributeDefinition extends AbstractAttributeDefinition {
     }
 
     /**
-     * Sets whether the definition passes unmatched values through (Boolean object parameter).
-     * 
-     * @param newPassThru whether the definition passes unmatched values unchanged or suppresses them.
-     * @since 4.0.0
-     */
-    public void setPassThruBoolean(final @Nullable Boolean newPassThru) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
-        if (newPassThru == null) {
-            log.warn("Attribute Definition {}: empty provided as passThru", getLogPrefix());
-            return;
-        }
-        passThru = newPassThru;
-    }
-
-    /**
      * Sets whether the definition passes unmatched values through.
      * 
      * @param newPassThru whether the definition passes unmatched values unchanged or suppresses them.
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java
index 517e11a..c41fdc0 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java
@@ -22,8 +22,7 @@ import java.util.regex.Pattern;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.google.common.base.MoreObjects;
 
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@@ -33,16 +32,11 @@ import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
 import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import com.google.common.base.MoreObjects;
-
 /**
  * Represents incoming attribute values and rules used for matching them. The value may include regular expressions.
  */
 public class SourceValue extends AbstractInitializableComponent {
 
-    /** Class logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(SourceValue.class);
-
     /**
      * Value string. This may contain regular expressions.
      */
@@ -80,13 +74,9 @@ public class SourceValue extends AbstractInitializableComponent {
      *
      * @param theCaseSensitive whether case should be ignored when matching.  Null taken as default;
      */
-    public void setCaseSensitive( @Nullable final Boolean theCaseSensitive) {
+    public void setCaseSensitive(final boolean theCaseSensitive) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        if (null != theCaseSensitive) {
-            caseSensitive = theCaseSensitive;
-        } else {
-            log.warn("Empty value specified for case sensitive");
-        }
+        caseSensitive = theCaseSensitive;
     }
 
 
@@ -105,14 +95,10 @@ public class SourceValue extends AbstractInitializableComponent {
      * @param theIgnoreCase whether case should be ignored when matching.  Null defaults to false;
      * @deprecated in V4 - use setCaseSensitive
      */
-    public void setIgnoreCase( @Nullable final Boolean theIgnoreCase) {
+    public void setIgnoreCase(final boolean theIgnoreCase) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         DeprecationSupport.warnOnce(ObjectType.METHOD, "setIgnoreCase", null, "setCaseSensitive");
-        if (null != theIgnoreCase) {
             setCaseSensitive(!theIgnoreCase);
-        } else {
-            setCaseSensitive(true);
-        }
     }
 
 
@@ -132,13 +118,9 @@ public class SourceValue extends AbstractInitializableComponent {
      *
      * @param thePartialMatch whether partial matches should be allowed.  Null defaults to false;
      */
-    public void setPartialMatch( @Nullable final Boolean thePartialMatch) {
+    public void setPartialMatch(final boolean thePartialMatch) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        if (null != thePartialMatch) {
-            partialMatch = thePartialMatch;
-        } else {
-            partialMatch = false;
-        }
+        partialMatch = thePartialMatch;
     }
     
     /**
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/SubjectDataConnector.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/SubjectDataConnector.java
index d0663a1..eee7a99 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/SubjectDataConnector.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/SubjectDataConnector.java
@@ -23,10 +23,14 @@ import java.util.Map;
 import java.util.function.Function;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 import javax.security.auth.Subject;
 
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
@@ -37,11 +41,6 @@ import net.shibboleth.idp.authn.principal.IdPAttributePrincipal;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
-import org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
  * A {@link net.shibboleth.idp.attribute.resolver.DataConnector} that extracts all
  * {@link IdPAttributePrincipal} objects from the {@link Subject} objects associated
@@ -99,24 +98,6 @@ public class SubjectDataConnector extends AbstractDataConnector {
         noResultIsError = flag;
     }
 
-    /**
-     * Sets whether obtaining no results should be treated as an error.
-     * 
-     * <p>Defaults to false.</p>
-     * 
-     * @param flag flag to set
-     * @since 4.0.0
-     */
-    public void setNoResultIsErrorBoolean(final @Nullable Boolean flag) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        if (null == flag) {
-            log.warn("{} empty property passed to setNoResultIsError", getLogPrefix());
-            return;
-        }
-
-        noResultIsError = flag;
-    }
-
     /** {@inheritDoc} */
     @Override
     @Nonnull protected Map<String,IdPAttribute> doDataConnectorResolve(
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/ConnectionFactoryValidator.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/ConnectionFactoryValidator.java
index 9df9c06..ed6ec6b 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/ConnectionFactoryValidator.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/ConnectionFactoryValidator.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.attribute.resolver.dc.ldap.impl;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 
 import org.ldaptive.Connection;
 import org.ldaptive.ConnectionFactory;
@@ -30,6 +29,7 @@ import net.shibboleth.idp.attribute.resolver.dc.ValidationException;
 import net.shibboleth.idp.attribute.resolver.dc.Validator;
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /**
@@ -67,6 +67,7 @@ public class ConnectionFactoryValidator extends AbstractInitializableComponent i
      * @param factory the connection factory
      */
     @Nonnull public void setConnectionFactory(@Nonnull final ConnectionFactory factory) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         connectionFactory = Constraint.isNotNull(factory, "Connection factory must be non-null");
     }
 
@@ -85,10 +86,9 @@ public class ConnectionFactoryValidator extends AbstractInitializableComponent i
      *
      * @param what whether {@link #validate()} should throw or log errors
      */
-    public void setThrowValidateError(@Nullable final Boolean what) {
-        if (null != what) {
-            throwOnValidateError = what;
-        }
+    public void setThrowValidateError(final boolean what) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwOnValidateError = what;
     }
 
     /**
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValueTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValueTest.java
index f13e56e..5d0da0d 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValueTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValueTest.java
@@ -62,8 +62,6 @@ public class SourceValueTest {
         assertTrue(value.isCaseSensitive());
         value.setIgnoreCase(true);
         assertFalse(value.isCaseSensitive());
-        value.setIgnoreCase(null);
-        assertTrue(value.isCaseSensitive());
         value.setCaseSensitive(false);
         assertFalse(value.isCaseSensitive());
         assertTrue(value.isIgnoreCase());
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
index 151ef5c..1fd96bd 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
@@ -80,7 +80,7 @@ public class MappedAttributeDefinitionParser extends BaseResolverPluginParser {
                     log.info("{} Default value and passThru both specified", getLogPrefix(), getDefinitionId());
                 }
                 passThru = StringSupport.trimOrNull(defaultValueElement.getAttributeNS(null, "passThru"));
-                builder.addPropertyValue("passThruBoolean",  SpringSupport.getStringValueAsBoolean(passThru));
+                builder.addPropertyValue("passThru",  SpringSupport.getStringValueAsBoolean(passThru));
             }
         }
 
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
index 13a4b27..4e451e4 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
@@ -74,13 +74,14 @@ public class SourceValueParser extends AbstractSingleBeanDefinitionParser {
                     "ignoreCase",
                     parserContext.getReaderContext().getResource().getDescription(),
                     "caseSensitive");
-            builder.addPropertyValue("ignoreCase", StringSupport.trimOrNull(config.getAttributeNS(null, "ignoreCase")));
+            builder.addPropertyValue("ignoreCase", SpringSupport.getStringValueAsBoolean(
+                    config.getAttributeNS(null, "ignoreCase")));
         }
 
         String partialMatch = null;
         if (config.hasAttributeNS(null, "partialMatch")) {
             partialMatch = StringSupport.trimOrNull(config.getAttributeNS(null, "partialMatch"));
-            builder.addPropertyValue("partialMatch", partialMatch);
+            builder.addPropertyValue("partialMatch", SpringSupport.getStringValueAsBoolean(partialMatch));
         }
 
         log.debug("SourceValue value: {}, caseSensitive: {}, partialMatch: {}", value, caseSensitive, partialMatch);
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
index d71c2e3..f2be591 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
@@ -28,7 +28,6 @@ import net.shibboleth.ext.spring.util.SpringSupport;
 import net.shibboleth.idp.attribute.resolver.dc.impl.SubjectDataConnector;
 import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /** Bean definition Parser for a {@link SubjectDataConnector}. */
 public class SubjectDataConnectorParser extends AbstractDataConnectorParser {
@@ -47,8 +46,8 @@ public class SubjectDataConnectorParser extends AbstractDataConnectorParser {
             @Nonnull final BeanDefinitionBuilder builder) {
         
         if (config.hasAttributeNS(null, "noResultIsError")) {
-            builder.addPropertyValue("noResultIsErrorBoolean", SpringSupport.getStringValueAsBoolean(
-                    StringSupport.trimOrNull(config.getAttributeNS(null, "noResultIsError"))));
+            builder.addPropertyValue("noResultIsError", SpringSupport.getStringValueAsBoolean(
+                    config.getAttributeNS(null, "noResultIsError")));
         }
     }
 
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index 6f75dc8..d7df36e 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -670,7 +670,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
             final String noResultIsError =
                     AttributeSupport.getAttributeValue(configElement, new QName("noResultIsError"));
             if (noResultIsError != null) {
-                mapper.addPropertyValue("noResultAnError", noResultIsError);
+                mapper.addPropertyValue("noResultAnError", SpringSupport.getStringValueAsBoolean(noResultIsError));
             }
 
             final String multipleResultsIsError =
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
index d67da34..ce7b188 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
@@ -31,6 +31,7 @@ import org.springframework.beans.factory.support.ManagedMap;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
+import net.shibboleth.ext.spring.util.SpringSupport;
 import net.shibboleth.idp.attribute.resolver.dc.rdbms.impl.DataSourceValidator;
 import net.shibboleth.idp.attribute.resolver.dc.rdbms.impl.RDBMSDataConnector;
 import net.shibboleth.idp.attribute.resolver.dc.rdbms.impl.StringResultMappingStrategy;
@@ -266,7 +267,7 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
             final String noResultIsError =
                     AttributeSupport.getAttributeValue(configElement, new QName("noResultIsError"));
             if (noResultIsError != null) {
-                mapper.addPropertyValue("noResultAnError", noResultIsError);
+                mapper.addPropertyValue("noResultAnError", SpringSupport.getStringValueAsBoolean(noResultIsError));
             }
 
             final String multipleResultsIsError =
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
index 450ba70..8a48dec 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
@@ -61,11 +61,7 @@ public class AttributeResolverServiceStrategy extends AbstractIdentifiableInitia
     * Sets whether to strip nulls from attribute values.
     * @param doStripNulls what to set 
     */
-   public void setStripNulls(@Nullable final Boolean doStripNulls) {
-       if (null == doStripNulls) {
-           log.warn("Attribute resolver: {} empty value passed to stripNulls. Ignored", getId());
-           return;
-       }
+   public void setStripNulls(final boolean doStripNulls) {
        stripNulls = doStripNulls;
    }
 
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java
index 9433fc4..7a808cb 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java
@@ -23,6 +23,7 @@ import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
+import org.springframework.beans.factory.BeanCreationException;
 import org.springframework.beans.factory.BeanDefinitionStoreException;
 import org.testng.annotations.Test;
 
@@ -55,7 +56,7 @@ public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinition
         assertEquals(defn.getDefaultAttributeValue().getValue(), "foobar");
     }
     
-    @Test public void emptyPassThru() {
+    @Test(expectedExceptions = {BeanCreationException.class}) public void emptyPassThru() {
         final MappedAttributeDefinition defn = getDefinition("resolver/empty.xml");
 
         assertFalse(defn.isPassThru());
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java
index 6ea5b24..dd580d6 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java
@@ -23,6 +23,7 @@ import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
+import org.springframework.beans.factory.BeanCreationException;
 import org.springframework.context.support.GenericApplicationContext;
 import org.testng.annotations.Test;
 
@@ -85,7 +86,7 @@ public class SourceValueParserTest extends BaseAttributeDefinitionParserTest {
         }
     }
     
-    @Test public void emptyCase() {
+    @Test(expectedExceptions = {BeanCreationException.class}) public void emptyCase() {
         SourceValue value = getSourceValue("resolver/sourceValueEmptyCase.xml");
 
         assertTrue(value.isCaseSensitive());
@@ -93,7 +94,7 @@ public class SourceValueParserTest extends BaseAttributeDefinitionParserTest {
         assertEquals(value.getValue(), "sourceValueAttributes1");
     }
 
-    @Test public void emptyPartial() {
+    @Test(expectedExceptions = {BeanCreationException.class}) public void emptyPartial() {
         SourceValue value = getSourceValue("resolver/sourceValueEmptyPartial.xml");
 
         assertFalse(value.isCaseSensitive());
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/SubjectDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/SubjectDataConnectorParserTest.java
index 9e5128f..a4ebdf2 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/SubjectDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/SubjectDataConnectorParserTest.java
@@ -21,6 +21,7 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
+import org.springframework.beans.factory.BeanCreationException;
 import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.resolver.dc.impl.SubjectDataConnector;
@@ -41,7 +42,7 @@ public class SubjectDataConnectorParserTest extends BaseAttributeDefinitionParse
         assertTrue(connector.isNoResultIsError());
     }
     
-    @Test public void emptyNoResultIsError() {
+    @Test(expectedExceptions = {BeanCreationException.class}) public void emptyNoResultIsError() {
         final SubjectDataConnector connector = getDataConnector("resolver/subjectAttributesNull.xml", SubjectDataConnector.class);
 
         assertFalse(connector.isExportAllAttributes());

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


More information about the commits mailing list