[java-shib-attribute] branch main updated: Relax requirement for lookup strategies to allow flexibility.

Scott Cantor cantor.2 at osu.edu
Thu May 4 12:52:36 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=2927a35a60dfc641046a012db8d00668cddc907c

The following commit(s) were added to refs/heads/main by this push:
     new 2927a35a6 Relax requirement for lookup strategies to allow flexibility.
2927a35a6 is described below

commit 2927a35a60dfc641046a012db8d00668cddc907c
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu May 4 08:52:30 2023 -0400

    Relax requirement for lookup strategies to allow flexibility.
---
 ...tMetadataDrivenConfigurationLookupStrategy.java | 26 +++++++++++++---------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
index 042604d5b..57912e1a8 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
@@ -112,10 +112,10 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
     @Nonnull private Function<BaseContext,T> defaultValueStrategy;
     
     /** Strategy for obtaining metadata via ProfileRequestContext. */
-    @NonnullAfterInit private Function<ProfileRequestContext,EntityDescriptor> profileMetadataLookupStrategy;
+    @Nullable private Function<ProfileRequestContext,EntityDescriptor> profileMetadataLookupStrategy;
 
     /** Strategy for obtaining metadata via MessageContext. */
-    @NonnullAfterInit private Function<MessageContext,EntityDescriptor> messageMetadataLookupStrategy;
+    @Nullable private Function<MessageContext,EntityDescriptor> messageMetadataLookupStrategy;
 
     /** Strategy for obtaining profile ID for property naming. */
     @Nullable private Function<BaseContext,String> profileIdLookupStrategy;
@@ -299,10 +299,6 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
     protected void doInitialize() throws ComponentInitializationException {
         super.doInitialize();
         
-        if (profileMetadataLookupStrategy == null || messageMetadataLookupStrategy == null) {
-            throw new ComponentInitializationException("SAML metadata lookup strategy cannot be null");
-        }
-        
         if (propertyName == null) {
             throw new ComponentInitializationException("Property name cannot be null or empty");
         } else if (propertyAliases == null) {
@@ -342,10 +338,20 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
         final EntityDescriptor entity;
         final String profileId;
         
-        if (input instanceof ProfileRequestContext) {
-            entity = profileMetadataLookupStrategy.apply((ProfileRequestContext) input);
-        } else if (input instanceof MessageContext) {
-            entity = messageMetadataLookupStrategy.apply((MessageContext) input);
+        if (input instanceof ProfileRequestContext prc) {
+            if (profileMetadataLookupStrategy != null ) {
+                entity = profileMetadataLookupStrategy.apply(prc);
+            } else {
+                entity = null;
+                LOG.warn("No lookup strategy installed for locating metadata from ProfileRequestContext");
+            }
+        } else if (input instanceof MessageContext mc) {
+            if (messageMetadataLookupStrategy != null) {
+                entity = messageMetadataLookupStrategy.apply(mc);
+            } else {
+                entity = null;
+                LOG.warn("No lookup strategy installed for locating metadata from MessageContext");
+            }
         } else {
             entity = null;
         }

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


More information about the commits mailing list