[java-shib-metadata] branch main updated: IDP-1972 - Revisit deferred classnames for solving layering conflicts

Scott Cantor cantor.2 at osu.edu
Thu Aug 3 14:39:03 UTC 2023


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=3146ec55d6a524150ffc323817165c337478c99a

The following commit(s) were added to refs/heads/main by this push:
     new 3146ec55 IDP-1972 - Revisit deferred classnames for solving layering conflicts
3146ec55 is described below

commit 3146ec55d6a524150ffc323817165c337478c99a
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Aug 3 10:38:59 2023 -0400

    IDP-1972 - Revisit deferred classnames for solving layering conflicts
    
    https://shibboleth.atlassian.net/browse/IDP-1972
    
    Eliminate hardcoded class name in favor of property lookup.
---
 .../spring/metadata/filter/PredicateFilterParser.java      | 14 +++++++-------
 shib-metadata-spring/src/test/resources/logback-test.xml   |  3 +--
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
index 1bdd3bdb..d4443020 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
@@ -34,7 +34,6 @@ import org.springframework.beans.factory.support.ManagedList;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.logic.PredicateSupport;
 import net.shibboleth.shared.logic.ScriptedPredicate;
 import net.shibboleth.shared.primitive.LoggerFactory;
@@ -54,10 +53,6 @@ public class PredicateFilterParser extends AbstractMetadataFilterParser {
     @Nonnull public static final QName TYPE_NAME =
             new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE, "Predicate");
 
-    /** Name of class to attempt to instantiate to handle mapped attribute predicate. */
-    @Nonnull @NotEmpty private static final String MAPPED_PREDICATE_CLASS =
-            "net.shibboleth.saml.profile.context.logic.MappedEntityAttributesPredicate";
-
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(PredicateFilterParser.class);
 
@@ -68,7 +63,11 @@ public class PredicateFilterParser extends AbstractMetadataFilterParser {
     @SuppressWarnings("unchecked")
     public PredicateFilterParser() {
         try {
-            mappedPredicateClass = (Class<? extends Predicate<?>>) Class.forName(MAPPED_PREDICATE_CLASS);
+            final String className = getCustomProperty(getClass().getName() + ".MappedPredicate.class", null);
+            if (className != null) {
+                mappedPredicateClass = (Class<? extends Predicate<?>>) Class.forName(className);
+                log.debug("Using class for mapped tag predicate: {}", className);
+            }
         } catch (final ClassNotFoundException e) {
             // Will warn later any time we encounter a relevant setting.
         }
@@ -276,7 +275,7 @@ public class PredicateFilterParser extends AbstractMetadataFilterParser {
         if (!tagList.isEmpty()) {
 
             if (mappedPredicateClass == null) {
-                log.warn("Ignoring MappedTag element(s) due to class instantiation failure at startup");
+                log.warn("Ignoring MappedTag element(s), no predicate class configured");
                 return null;
             }
             
@@ -324,6 +323,7 @@ public class PredicateFilterParser extends AbstractMetadataFilterParser {
                     BeanDefinitionBuilder.rootBeanDefinition(PredicateSupport.class, "or");
             final ManagedList<BeanDefinition> managedList = new ManagedList<>(scriptList.size());
             for (final Element e : scriptList) {
+                assert e != null;
                 managedList.add(ScriptTypeBeanParser.parseScriptType(ScriptedPredicate.class, e).getBeanDefinition());
             }
             orBuilder.addConstructorArgValue(managedList);
diff --git a/shib-metadata-spring/src/test/resources/logback-test.xml b/shib-metadata-spring/src/test/resources/logback-test.xml
index e23dbbb3..73b61ccd 100644
--- a/shib-metadata-spring/src/test/resources/logback-test.xml
+++ b/shib-metadata-spring/src/test/resources/logback-test.xml
@@ -2,8 +2,7 @@
 
 <configuration>
 
-    <logger name="net.shibboleth.shared.spring.resource" level="DEBUG"/>
-    <logger name="net.shibboleth.idp.profile.spring" level="DEBUG"/>
+    <logger name="net.shibboleth.shared.spring" level="DEBUG"/>
 
 
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

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


More information about the commits mailing list