[java-identity-provider] 03/03: IDP-1450 Use standard support to convert from attribute to boolean
Rod Widdowson
rdw at steadingsoftware.com
Mon Jul 22 10:36:07 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=04f0b053345d9c01b95239bc96b869255aeb9bab
commit 04f0b053345d9c01b95239bc96b869255aeb9bab
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Jul 22 15:27:49 2019 +0100
IDP-1450 Use standard support to convert from attribute to boolean
https://issues.shibboleth.net/jira/browse/IDP-1450
---
.../metadata/AbstractMetadataProviderParser.java | 8 ++--
.../metadata/TLSSocketFactoryFactoryBean.java | 5 ++-
.../filter/impl/EntityRoleFilterParser.java | 5 ++-
.../filter/impl/NameIDFormatFilterParser.java | 4 +-
.../filter/impl/PredicateFilterParser.java | 6 +--
.../filter/impl/SignatureValidationParser.java | 3 +-
.../AbstractDynamicMetadataProviderParser.java | 6 +--
.../AbstractReloadingMetadataProviderParser.java | 5 ++-
.../impl/FileBackedHTTPMetadataProviderParser.java | 3 +-
.../impl/InlineMetadataProviderParser.java | 5 ++-
.../FileBackedHTTPMetadataProviderParserTest.java | 52 ++++++++++++++++++++++
.../metadata/FilesystemMetadataParserTest.java | 19 ++++++++
.../metadata/InlineMetadataParserTest.java | 20 +++++++++
.../metadata/fileBackedHTTPEntityBadIFBF.xml | 15 +++++++
.../fileBackedHTTPEntityDisRegardTLSBad.xml | 16 +++++++
.../spring/relyingparty/metadata/fileBadRVPO.xml | 13 ++++++
.../relyingparty/metadata/inLineEntityBadRVPO.xml | 21 +++++++++
17 files changed, 185 insertions(+), 21 deletions(-)
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java
index 56b32f5..890a0d7 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java
@@ -167,12 +167,12 @@ public abstract class AbstractMetadataProviderParser extends AbstractSingleBeanD
if (isPresentNotChaining(element, "failFastInitialization")) {
builder.addPropertyValue("failFastInitialization",
- StringSupport.trimOrNull(element.getAttributeNS(null, "failFastInitialization")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "failFastInitialization")));
}
if (isPresentNotChaining(element, "requireValidMetadata")) {
builder.addPropertyValue("requireValidMetadata",
- StringSupport.trimOrNull(element.getAttributeNS(null, "requireValidMetadata")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "requireValidMetadata")));
}
processPredicateOptions(element, parserContext, builder);
@@ -208,12 +208,12 @@ public abstract class AbstractMetadataProviderParser extends AbstractSingleBeanD
if (isPresentNotChaining(element, "satisfyAnyPredicates")) {
builder.addPropertyValue("satisfyAnyPredicates",
- StringSupport.trimOrNull(element.getAttributeNS(null, "satisfyAnyPredicates")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "satisfyAnyPredicates")));
}
if (isPresentNotChaining(element, "useDefaultPredicateRegistry")) {
builder.addPropertyValue("useDefaultPredicateRegistry",
- StringSupport.trimOrNull(element.getAttributeNS(null, "useDefaultPredicateRegistry")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "useDefaultPredicateRegistry")));
}
if (isPresentNotChaining(element, "criterionPredicateRegistryRef")) {
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/TLSSocketFactoryFactoryBean.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/TLSSocketFactoryFactoryBean.java
index d18c341..d8f11a3 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/TLSSocketFactoryFactoryBean.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/TLSSocketFactoryFactoryBean.java
@@ -19,8 +19,6 @@ package net.shibboleth.idp.profile.spring.relyingparty.metadata;
import javax.annotation.Nullable;
-import net.shibboleth.utilities.java.support.httpclient.HttpClientSupport;
-
import org.apache.http.client.HttpClient;
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
import org.opensaml.security.httpclient.HttpClientSecurityParameters;
@@ -29,6 +27,8 @@ import org.opensaml.security.trust.TrustEngine;
import org.opensaml.security.x509.X509Credential;
import org.springframework.beans.factory.config.AbstractFactoryBean;
+import net.shibboleth.utilities.java.support.httpclient.HttpClientSupport;
+
/**
* A factory bean for producing instances of {@link LayeredConnectionSocketFactory} for use in {@link HttpClient}.
*/
@@ -70,6 +70,7 @@ public class TLSSocketFactoryFactoryBean extends AbstractFactoryBean {
connectionDisregardTLSCertificate = disregard;
}
+
/** {@inheritDoc} */
@Override public Class getObjectType() {
return LayeredConnectionSocketFactory.class;
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/EntityRoleFilterParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/EntityRoleFilterParser.java
index cf037f2..1216b85 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/EntityRoleFilterParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/EntityRoleFilterParser.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
+import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -63,12 +64,12 @@ public class EntityRoleFilterParser extends AbstractSingleBeanDefinitionParser {
if (element.hasAttributeNS(null, "removeRolelessEntityDescriptors")) {
builder.addPropertyValue("removeRolelessEntityDescriptors",
- StringSupport.trimOrNull(element.getAttributeNS(null, "removeRolelessEntityDescriptors")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "removeRolelessEntityDescriptors")));
}
if (element.hasAttributeNS(null, "removeEmptyEntitiesDescriptors")) {
builder.addPropertyValue("removeEmptyEntitiesDescriptors",
- StringSupport.trimOrNull(element.getAttributeNS(null, "removeEmptyEntitiesDescriptors")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "removeEmptyEntitiesDescriptors")));
}
}
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NameIDFormatFilterParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NameIDFormatFilterParser.java
index 01c24e4..a7891e6 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NameIDFormatFilterParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NameIDFormatFilterParser.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
+import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.ScriptTypeBeanParser;
import net.shibboleth.utilities.java.support.logic.ScriptedPredicate;
@@ -64,7 +65,8 @@ public class NameIDFormatFilterParser extends AbstractSingleBeanDefinitionParser
builder.setLazyInit(true);
if (element.hasAttributeNS(null, "removeExistingFormats")) {
- builder.addPropertyValue("removeExistingFormats", element.getAttributeNS(null, "removeExistingFormats"));
+ builder.addPropertyValue("removeExistingFormats",
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "removeExistingFormats")));
}
// Accumulate formats to attach as rule values.
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/PredicateFilterParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/PredicateFilterParser.java
index a682723..92f8241 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/PredicateFilterParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/PredicateFilterParser.java
@@ -69,8 +69,8 @@ public class PredicateFilterParser extends AbstractSingleBeanDefinitionParser {
final BeanDefinitionBuilder builder) {
if (element.hasAttributeNS(null, "removeEmptyEntitiesDescriptors")) {
- builder.addPropertyValue("removeEmptyEntitiesDescriptors",
- StringSupport.trimOrNull(element.getAttributeNS(null, "removeEmptyEntitiesDescriptors")));
+ builder.addPropertyValue("removeEmptyEntitiesDescriptors", SpringSupport.getStringValueAsBoolean(
+ element.getAttributeNS(null, "removeEmptyEntitiesDescriptors")));
}
final BeanDefinitionBuilder directionBuilder =
@@ -234,7 +234,7 @@ public class PredicateFilterParser extends AbstractSingleBeanDefinitionParser {
final BeanDefinitionBuilder builder =
BeanDefinitionBuilder.genericBeanDefinition(EntityAttributesPredicate.class);
builder.addConstructorArgValue(managedTagList);
- builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "trim")));
+ builder.addConstructorArgValue(SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "trim")));
return builder;
}
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
index 297d6e4..e9bfbe5 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
@@ -126,7 +126,8 @@ public class SignatureValidationParser extends AbstractSingleBeanDefinitionParse
}
if (element.hasAttributeNS(null, "requireSignedRoot")) {
- builder.addPropertyValue("requireSignedRoot", element.getAttributeNS(null, "requireSignedRoot"));
+ builder.addPropertyValue("requireSignedRoot",
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "requireSignedRoot")));
}
if (element.hasAttributeNS(null, "defaultCriteriaRef")) {
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicMetadataProviderParser.java
index bfc50e7..de7580c 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicMetadataProviderParser.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.profile.spring.relyingparty.metadata.impl;
+import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -110,7 +111,7 @@ public abstract class AbstractDynamicMetadataProviderParser extends AbstractMeta
if (element.hasAttributeNS(null, "removeIdleEntityData")) {
builder.addPropertyValue("removeIdleEntityData",
- StringSupport.trimOrNull(element.getAttributeNS(null, "removeIdleEntityData")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "removeIdleEntityData")));
}
if (element.hasAttributeNS(null, "cleanupTaskInterval")) {
@@ -156,8 +157,7 @@ public abstract class AbstractDynamicMetadataProviderParser extends AbstractMeta
}
if (element.hasAttributeNS(null, "initializeFromPersistentCacheInBackground")) {
- builder.addPropertyValue("initializeFromPersistentCacheInBackground",
- StringSupport.trimOrNull(
+ builder.addPropertyValue("initializeFromPersistentCacheInBackground", SpringSupport.getStringValueAsBoolean(
element.getAttributeNS(null, "initializeFromPersistentCacheInBackground")));
}
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractReloadingMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractReloadingMetadataProviderParser.java
index 94e5d84..2598cf9 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractReloadingMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractReloadingMetadataProviderParser.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.profile.spring.relyingparty.metadata.impl;
+import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -56,8 +57,8 @@ public abstract class AbstractReloadingMetadataProviderParser extends AbstractMe
}
if (element.hasAttributeNS(null, "resolveViaPredicatesOnly")) {
- builder.addPropertyValue("resolveViaPredicatesOnly",
- StringSupport.trimOrNull(element.getAttributeNS(null, "resolveViaPredicatesOnly")));
+ builder.addPropertyValue("resolveViaPredicatesOnly", SpringSupport.getStringValueAsBoolean(
+ element.getAttributeNS(null, "resolveViaPredicatesOnly")));
}
if (element.hasAttributeNS(null, "refreshDelayFactor")) {
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/FileBackedHTTPMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/FileBackedHTTPMetadataProviderParser.java
index 9067406..01c12f7 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/FileBackedHTTPMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/FileBackedHTTPMetadataProviderParser.java
@@ -19,6 +19,7 @@ package net.shibboleth.idp.profile.spring.relyingparty.metadata.impl;
import javax.xml.namespace.QName;
+import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -50,7 +51,7 @@ public class FileBackedHTTPMetadataProviderParser extends HTTPMetadataProviderPa
if (element.hasAttributeNS(null, "initializeFromBackupFile")) {
builder.addPropertyValue("initializeFromBackupFile",
- StringSupport.trimOrNull(element.getAttributeNS(null, "initializeFromBackupFile")));
+ SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "initializeFromBackupFile")));
}
if (element.hasAttributeNS(null, "backupFileInitNextRefreshDelay")) {
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java
index 474ba44..9c684e7 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java
@@ -22,6 +22,7 @@ import java.util.List;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
+import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -63,8 +64,8 @@ public class InlineMetadataProviderParser extends AbstractMetadataProviderParser
}
if (element.hasAttributeNS(null, "resolveViaPredicatesOnly")) {
- builder.addPropertyValue("resolveViaPredicatesOnly",
- StringSupport.trimOrNull(element.getAttributeNS(null, "resolveViaPredicatesOnly")));
+ builder.addPropertyValue("resolveViaPredicatesOnly", SpringSupport.getStringValueAsBoolean(
+ element.getAttributeNS(null, "resolveViaPredicatesOnly")));
}
}
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FileBackedHTTPMetadataProviderParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FileBackedHTTPMetadataProviderParserTest.java
index 652527c..44c65a0 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FileBackedHTTPMetadataProviderParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FileBackedHTTPMetadataProviderParserTest.java
@@ -66,6 +66,58 @@ public class FileBackedHTTPMetadataProviderParserTest extends AbstractMetadataPa
Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
}
+ @Test(expectedExceptions = {BeanCreationException.class}) public void badIFBVF() throws Exception {
+ MockPropertySource propSource = singletonPropertySource(PROP_MDURL,
+ RepositorySupport.buildHTTPResourceURL(REPO_IDP, ENTITY_XML, false));
+
+ FileBackedHTTPMetadataResolver resolver = getBean(FileBackedHTTPMetadataResolver.class, propSource, "fileBackedHTTPEntityBadIFBF.xml", "beans.xml");
+
+ Assert.assertEquals(resolver.getId(), "BadIFBF");
+
+ final Iterator<EntityDescriptor> entities = resolver.resolve(criteriaFor(IDP_ID)).iterator();
+ Assert.assertTrue(resolver.isFailFastInitialization());
+ Assert.assertTrue(resolver.isRequireValidMetadata());
+
+ Assert.assertEquals(entities.next().getEntityID(), IDP_ID);
+ Assert.assertFalse(entities.hasNext());
+
+ Assert.assertEquals(resolver.getRefreshDelayFactor(), 0.75, 0.001);
+ Assert.assertEquals(resolver.getExpirationWarningThreshold(), Duration.ofHours(12));
+ Assert.assertSame(resolver.getParserPool(), parserPool);
+
+ Assert.assertEquals(resolver.isInitializeFromBackupFile(), true);
+ Assert.assertEquals(resolver.getBackupFileInitNextRefreshDelay(), Duration.ofSeconds(10));
+
+ Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
+ }
+
+
+ @Test(expectedExceptions = {BeanCreationException.class}) public void badTLS() throws Exception {
+ MockPropertySource propSource = singletonPropertySource(PROP_MDURL,
+ RepositorySupport.buildHTTPResourceURL(REPO_IDP, ENTITY_XML, false));
+
+ FileBackedHTTPMetadataResolver resolver = getBean(FileBackedHTTPMetadataResolver.class, propSource, "fileBackedHTTPEntityDisRegardTLSBad.xml", "beans.xml");
+
+ Assert.assertEquals(resolver.getId(), "badTLS");
+
+ final Iterator<EntityDescriptor> entities = resolver.resolve(criteriaFor(IDP_ID)).iterator();
+ Assert.assertTrue(resolver.isFailFastInitialization());
+ Assert.assertTrue(resolver.isRequireValidMetadata());
+
+ Assert.assertEquals(entities.next().getEntityID(), IDP_ID);
+ Assert.assertFalse(entities.hasNext());
+
+ Assert.assertEquals(resolver.getRefreshDelayFactor(), 0.75, 0.001);
+ Assert.assertEquals(resolver.getExpirationWarningThreshold(), Duration.ofHours(12));
+ Assert.assertSame(resolver.getParserPool(), parserPool);
+
+ Assert.assertEquals(resolver.isInitializeFromBackupFile(), false);
+ Assert.assertEquals(resolver.getBackupFileInitNextRefreshDelay(), Duration.ofSeconds(10));
+
+ Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
+ }
+
+
@Test public void entities() throws Exception {
MockPropertySource propSource = singletonPropertySource(PROP_MDURL,
RepositorySupport.buildHTTPResourceURL(REPO_IDP, ENTITIES_XML, false));
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FilesystemMetadataParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FilesystemMetadataParserTest.java
index f36d6d2..65fa08d 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FilesystemMetadataParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/FilesystemMetadataParserTest.java
@@ -23,6 +23,7 @@ import java.util.Iterator;
import org.opensaml.saml.metadata.resolver.impl.FilesystemMetadataResolver;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
+import org.springframework.beans.factory.BeanCreationException;
import org.springframework.context.ApplicationContext;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -111,4 +112,22 @@ public class FilesystemMetadataParserTest extends AbstractMetadataParserTest {
Assert.assertTrue(resolver.isResolveViaPredicatesOnly());
}
+ @Test(expectedExceptions = {BeanCreationException.class}) public void badRVPO() throws IOException {
+ ApplicationContext appContext = getApplicationContext("filesystemResolverContext",
+ "fileBadRVPO.xml", "beans.xml");
+
+ RelyingPartyMetadataProvider rpProvider =
+ appContext.getBean("BadRVPO", RelyingPartyMetadataProvider.class);
+ FilesystemMetadataResolver resolver =
+ FilesystemMetadataResolver.class.cast(rpProvider.getEmbeddedResolver());
+
+ Assert.assertEquals(resolver.getId(), "BadRVPO");
+
+ Assert.assertTrue(resolver.isSatisfyAnyPredicates());
+ Assert.assertTrue(resolver.isUseDefaultPredicateRegistry());
+ Assert.assertNotNull(resolver.getCriterionPredicateRegistry());
+ Assert.assertSame(resolver.getCriterionPredicateRegistry(), appContext.getBean("metadata.CriterionPredicateRegistry"));
+ Assert.assertFalse(resolver.isResolveViaPredicatesOnly());
+ }
+
}
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java
index 27b0e6a..117ff9c 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java
@@ -31,6 +31,7 @@ import net.shibboleth.utilities.java.support.service.ServiceableComponent;
import org.opensaml.saml.metadata.resolver.MetadataResolver;
import org.opensaml.saml.metadata.resolver.impl.DOMMetadataResolver;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
+import org.springframework.beans.factory.BeanCreationException;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.io.ResourceLoader;
import org.testng.Assert;
@@ -57,6 +58,25 @@ public class InlineMetadataParserTest extends AbstractMetadataParserTest {
Assert.assertFalse(entities.hasNext());
}
+
+ @Test(expectedExceptions = {BeanCreationException.class}) public void badResolveViaPredicatesOnly() throws ResolverException, IOException {
+ final DOMMetadataResolver resolver = getBean(DOMMetadataResolver.class, "inLineEntityBadRVPO.xml", "beans.xml");
+
+ Assert.assertEquals(resolver.getId(), "badRVPO");
+
+ Assert.assertTrue(resolver.isFailFastInitialization());
+ Assert.assertTrue(resolver.isRequireValidMetadata());
+
+ Assert.assertFalse(resolver.isResolveViaPredicatesOnly());
+ Assert.assertNotNull(resolver.getIndexes());
+ Assert.assertFalse(resolver.getIndexes().isEmpty());
+
+ final Iterator<EntityDescriptor> entities = resolver.resolve(criteriaFor(IDP_ID)).iterator();
+ Assert.assertEquals(entities.next().getEntityID(), IDP_ID);
+ Assert.assertFalse(entities.hasNext());
+
+ }
+
@Test public void entities() throws ResolverException, IOException {
final DOMMetadataResolver resolver = getBean(DOMMetadataResolver.class, "inLineEntities.xml", "beans.xml");
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBackedHTTPEntityBadIFBF.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBackedHTTPEntityBadIFBF.xml
new file mode 100644
index 0000000..493875b
--- /dev/null
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBackedHTTPEntityBadIFBF.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
+ urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
+
+ id="BadIFBF" xsi:type="metadata:FileBackedHTTPMetadataProvider"
+ backingFile="%{DIR}/spoolFileEntity.xml"
+ initializeFromBackupFile=" "
+ backupFileInitNextRefreshDelay="PT10S"
+ expirationWarningThreshold="PT12H"
+ metadataURL="%{metadataURL}">
+
+</metadata:MetadataProvider>
+
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBackedHTTPEntityDisRegardTLSBad.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBackedHTTPEntityDisRegardTLSBad.xml
new file mode 100644
index 0000000..1648f0d
--- /dev/null
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBackedHTTPEntityDisRegardTLSBad.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
+ urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
+
+ id="badTLS" xsi:type="metadata:FileBackedHTTPMetadataProvider"
+ backingFile="%{DIR}/spoolFileEntity.xml"
+ initializeFromBackupFile="false"
+ backupFileInitNextRefreshDelay="PT10S"
+ expirationWarningThreshold="PT12H"
+ disregardTLSCertificate=" "
+ metadataURL="%{metadataURL}">
+
+</metadata:MetadataProvider>
+
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBadRVPO.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBadRVPO.xml
new file mode 100644
index 0000000..92c6d34
--- /dev/null
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/fileBadRVPO.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
+ urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
+
+ criterionPredicateRegistryRef="metadata.CriterionPredicateRegistry"
+ satisfyAnyPredicates="true"
+ resolveViaPredicatesOnly=" "
+ id="BadRVPO" xsi:type="metadata:FilesystemMetadataProvider" metadataFile="%{DIR}/entities.xml">
+
+</metadata:MetadataProvider>
+
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/inLineEntityBadRVPO.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/inLineEntityBadRVPO.xml
new file mode 100644
index 0000000..b3802da
--- /dev/null
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/inLineEntityBadRVPO.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
+ urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
+
+ resolveViaPredicatesOnly=" "
+ indexesRef="metadata.Indexes"
+
+ id="badRVPO" xsi:type="metadata:InlineMetadataProvider" sortKey="1">
+
+ <EntityDescriptor ID="ie1"
+ entityID="https://idp.example.org/idp/shibboleth">
+ <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+ <SingleSignOnService
+ Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
+ Location="https://idp.example.org/idpie1/profile/SAML2/Redirect/SSO" />
+ </IDPSSODescriptor>
+ </EntityDescriptor>
+</metadata:MetadataProvider>
+
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list