[java-shib-attribute] branch main updated: Expose condition factory on transcoding registry via service strategy.

Scott Cantor cantor.2 at osu.edu
Mon Jul 11 22:17:46 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-attribute.

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

The following commit(s) were added to refs/heads/main by this push:
     new b4a517aa9 Expose condition factory on transcoding registry via service strategy.
b4a517aa9 is described below

commit b4a517aa9c2f7c2f634b488ab5d8b475a42a467f
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Jul 11 18:17:40 2022 -0400

    Expose condition factory on transcoding registry via service strategy.
---
 .../impl/AttributeRegistryServiceStrategy.java     | 25 +++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
index c7ed10fed..25e26ddb6 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
@@ -21,11 +21,14 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.function.Function;
+import java.util.function.Predicate;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +56,9 @@ public class AttributeRegistryServiceStrategy extends AbstractIdentifiableInitia
     /** Name of bean to supply naming function registry property. */
     @Nullable @NonnullElements private Collection<NamingFunction<?>> namingRegistry;
     
+    /** Optional factory function for building extended activation conditions. */
+    @Nullable private Function<Map<String,Object>,Predicate<ProfileRequestContext>> extendedConditionFactory;
+    
     /**
      * Sets the collection of {@link NamingFunction}s to install into the registry.
      * 
@@ -71,7 +77,23 @@ public class AttributeRegistryServiceStrategy extends AbstractIdentifiableInitia
             namingRegistry = Collections.emptyList();
         }
     }
-    
+
+    /**
+     * Set a factory function to call to consume a rule set and produce an optional "extended"
+     * activation condition {@link Predicate}.
+     * 
+     * <p>This allows deployments to define extended property names that represent condition types not
+     * known to this layer of the code base.</p>
+     * 
+     * @param factory factory function
+     */
+    public void setExtendedConditionFactory(
+            @Nullable final Function<Map<String,Object>,Predicate<ProfileRequestContext>> factory) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
+        extendedConditionFactory = factory;
+    }
+
     /** {@inheritDoc} */
     @Nullable public ServiceableComponent<AttributeTranscoderRegistry> apply(
             @Nullable final ApplicationContext appContext) {
@@ -92,6 +114,7 @@ public class AttributeRegistryServiceStrategy extends AbstractIdentifiableInitia
         registry.setId(getId());
         registry.setApplicationContext(appContext);
         registry.setNamingRegistry(namingRegistry);
+        registry.setExtendedConditionFactory(extendedConditionFactory);
         registry.setTranscoderRegistry(holder);
 
         try {

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


More information about the commits mailing list