[java-shib-metadata] 01/02: JSMD-12 - Schema filter Spring parser still hardcoding bean ID

Scott Cantor cantor.2 at osu.edu
Wed Oct 23 16:49:30 UTC 2024


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=9a345adfeb071d652e6b7bcc40cb6dc51a159dde

commit 9a345adfeb071d652e6b7bcc40cb6dc51a159dde
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Oct 23 12:48:48 2024 -0400

    JSMD-12 - Schema filter Spring parser still hardcoding bean ID
    
    https://shibboleth.atlassian.net/browse/JSMD-12
---
 .../spring/metadata/filter/SchemaValidationParser.java  | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java
index 981961ac..01b11252 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java
@@ -15,14 +15,17 @@
 package net.shibboleth.spring.metadata.filter;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.metadata.resolver.filter.impl.SchemaValidationFilter;
+import org.springframework.beans.factory.BeanCreationException;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
 import net.shibboleth.shared.xml.AttributeSupport;
+import net.shibboleth.shared.xml.SchemaBuilder;
 import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
 
 /**
@@ -34,6 +37,16 @@ public class SchemaValidationParser extends AbstractMetadataFilterParser {
     @Nonnull public static final QName TYPE_NAME =
             new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE, "SchemaValidation");
 
+    /** Bean ID for defaulted {@link SchemaBuilder} instance. */
+    @Nullable private final String schemaBuilderRef;
+
+    /** Constructor. */
+    public SchemaValidationParser() {
+        // Will fail later if not set.
+        schemaBuilderRef =
+                getCustomProperty(SchemaValidationParser.class.getName() + ".SchemaBuilder.bean", null);
+    }
+    
     /** {@inheritDoc} */
     @Override
     @Nonnull protected Class<?> getBeanClass(@Nonnull final Element element) {
@@ -48,8 +61,10 @@ public class SchemaValidationParser extends AbstractMetadataFilterParser {
         if (element.hasAttributeNS(null, "schemaBuilderRef")) {
             builder.addConstructorArgReference(
                     AttributeSupport.ensureAttributeValue(element, null, "schemaBuilderRef"));
+        } else if (schemaBuilderRef != null) {
+            builder.addConstructorArgReference(schemaBuilderRef);
         } else {
-            builder.addConstructorArgReference("shibboleth.SchemaBuilder");
+            throw new BeanCreationException("Default SchemaBuilder bean ID not available.");
         }
     }
 

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


More information about the commits mailing list