[java-shib-metadata] branch main updated: OSJ-363 - Add activationCondition support to MetadataResolvers

Scott Cantor cantor.2 at osu.edu
Wed Oct 19 17:10:45 UTC 2022


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

scantor pushed a commit to branch main
in repository java-shib-metadata.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-metadata.git;a=commit;h=79a81c465842c2409dff2c8a2f4df5c3d7b89e58

The following commit(s) were added to refs/heads/main by this push:
     new 79a81c46 OSJ-363 - Add activationCondition support to MetadataResolvers
79a81c46 is described below

commit 79a81c465842c2409dff2c8a2f4df5c3d7b89e58
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Oct 19 13:10:42 2022 -0400

    OSJ-363 - Add activationCondition support to MetadataResolvers
    
    https://shibboleth.atlassian.net/browse/OSJ-363
    
    Spring parser support.
---
 .../spring/metadata/AbstractMetadataProviderParser.java   |  5 +++++
 .../src/main/resources/schema/shibboleth-metadata.xsd     |  7 +++++++
 .../spring/metadata/FilesystemMetadataParserTest.java     | 15 ++++++++++++++-
 .../spring/metadata/fileEntityActivationCondition.xml     | 11 +++++++++++
 4 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
index 0aef188b..0cf1c43b 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
@@ -190,6 +190,11 @@ public abstract class AbstractMetadataProviderParser extends AbstractCustomBeanD
                     SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "requireValidMetadata")));
         }
 
+        if (element.hasAttributeNS(null, "activationConditionRef")) {
+            builder.addPropertyReference("activationCondition",
+                    StringSupport.trimOrNull(element.getAttributeNS(null, "activationConditionRef")));
+        }
+
         processPredicateOptions(element, parserContext, builder);
 
         final List<Element> filters =
diff --git a/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd b/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
index f7d8f371..5dc245c9 100644
--- a/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
+++ b/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
@@ -805,6 +805,13 @@
                 <documentation>A unique identifier that may be used to identify a particular provider.</documentation>
             </annotation>
         </attribute>
+        <attribute name="activationConditionRef" type="shibmd:string">
+            <annotation>
+                <documentation>
+                    Reference to a bean supplying an activation predicate.
+                </documentation>
+            </annotation>
+        </attribute>
         <attribute name="requireValidMetadata" type="shibmd:string">
             <annotation>
                 <documentation>
diff --git a/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/FilesystemMetadataParserTest.java b/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/FilesystemMetadataParserTest.java
index 85e9a438..39387d7f 100644
--- a/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/FilesystemMetadataParserTest.java
+++ b/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/FilesystemMetadataParserTest.java
@@ -32,7 +32,20 @@ import net.shibboleth.idp.saml.metadata.impl.MetadataProviderContainer;
 
 @SuppressWarnings("javadoc")
 public class FilesystemMetadataParserTest extends AbstractMetadataParserTest {
-    
+
+    @Test public void inactive() throws Exception {
+
+        FilesystemMetadataResolver resolver = getBean(FilesystemMetadataResolver.class, "fileEntityActivationCondition.xml", "beans.xml");
+        
+        Assert.assertEquals(resolver.getId(), "fileEntityActivationCondition");
+   
+        final Iterable<EntityDescriptor> entities = resolver.resolve(criteriaFor(IDP_ID));
+        Assert.assertTrue(resolver.isFailFastInitialization());
+        Assert.assertTrue(resolver.isRequireValidMetadata());
+        
+        Assert.assertNull(entities);
+    }
+
     @Test public void entity() throws Exception {
 
         FilesystemMetadataResolver resolver = getBean(FilesystemMetadataResolver.class, "fileEntity.xml", "beans.xml");
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileEntityActivationCondition.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileEntityActivationCondition.xml
new file mode 100644
index 00000000..087ffe04
--- /dev/null
+++ b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileEntityActivationCondition.xml
@@ -0,0 +1,11 @@
+<?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="fileEntityActivationCondition" xsi:type="metadata:FilesystemMetadataProvider" metadataFile="%{DIR}/entity.xml"
+    activationConditionRef="predicate.AlwaysFalse">
+
+</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