[java-shib-attribute] 02/02: IDP-1972 - Revisit deferred classnames for solving layering conflicts

Scott Cantor cantor.2 at osu.edu
Tue Aug 8 20:07:56 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-attribute.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=71bb0adf02e8f3d2c1cb9829eaa9cd2eabbcc221

commit 71bb0adf02e8f3d2c1cb9829eaa9cd2eabbcc221
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Aug 8 16:07:51 2023 -0400

    IDP-1972 - Revisit deferred classnames for solving layering conflicts
    
    https://shibboleth.atlassian.net/browse/IDP-1972
    
    Switch to a property for HTTP request supplier bean ID.
---
 .../dc/impl/ComputedIdDataConnectorParser.java     | 24 ++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
index 79e467c75..63d99325c 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
@@ -15,6 +15,7 @@
 package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.slf4j.Logger;
@@ -25,7 +26,6 @@ import org.w3c.dom.Element;
 
 import net.shibboleth.idp.attribute.impl.ComputedPairwiseIdStore;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.xml.AttributeSupport;
 
@@ -37,12 +37,17 @@ public class ComputedIdDataConnectorParser extends PairwiseIdDataConnectorParser
     /** Schema type - resolver. */
     @Nonnull public static final QName TYPE_NAME = new QName(AttributeResolverNamespaceHandler.NAMESPACE, 
             "ComputedId");
-
-    /** ID of system bean used to access servlet request. */
-    @Nonnull @NotEmpty public static final String SERVLET_SUPPLIER_ID = "shibboleth.HttpServletRequestSupplier";
     
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(ComputedIdDataConnectorParser.class);
+
+    /** ID of system bean used to access servlet request. */
+    @Nullable private final String servletRequestSupplier;
+
+    /** Constructor. */
+    public ComputedIdDataConnectorParser() {
+        servletRequestSupplier = getCustomProperty(getClass().getName() + ".HttpServletRequestSupplier.bean", null);
+    }
     
     /** {@inheritDoc} */
     @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@@ -52,6 +57,7 @@ public class ComputedIdDataConnectorParser extends PairwiseIdDataConnectorParser
         builder.addPropertyValue("pairwiseIdStore", doComputedPairwiseIdStore(config, parserContext));
     }
 
+// Checkstyle: CyclomaticComplexity OFF
     /**
      * Parse the config and define a bean for a {@link ComputedPairwiseIdStore}.
      * 
@@ -83,7 +89,13 @@ public class ComputedIdDataConnectorParser extends PairwiseIdDataConnectorParser
         if (config.hasAttributeNS(null, "saltLookupStrategyRef")) {
             builder.addPropertyReference("saltLookupStrategy",
                     AttributeSupport.ensureAttributeValue(config, null, "saltLookupStrategyRef"));
-            builder.addPropertyReference("httpServletRequestSupplier", SERVLET_SUPPLIER_ID);
+            if (servletRequestSupplier != null) {
+                log.debug("Using bean ID '{}' as servlet request supplier", servletRequestSupplier);
+                assert servletRequestSupplier != null;
+                builder.addPropertyReference("httpServletRequestSupplier", servletRequestSupplier);
+            } else {
+                log.warn("No HttpServletRequest supplier available to inject into connector for salt lookup strategy");
+            }
         }
         
         final String salt;
@@ -116,5 +128,5 @@ public class ComputedIdDataConnectorParser extends PairwiseIdDataConnectorParser
 
         return builder.getBeanDefinition();
     }
-
+// Checkstyle: CyclomaticComplexity ON
 }
\ 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