[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