[java-identity-provider] branch master updated: Add mapped tag variant for relying party overrides.
Scott Cantor
cantor.2 at osu.edu
Fri May 17 14:43:35 EDT 2019
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch master
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=97ccfd1b20a9e12bbfb5bd01834f941e63e81872
The following commit(s) were added to refs/heads/master by this push:
new 97ccfd1 Add mapped tag variant for relying party overrides.
97ccfd1 is described below
commit 97ccfd1b20a9e12bbfb5bd01834f941e63e81872
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri May 17 14:43:30 2019 -0400
Add mapped tag variant for relying party overrides.
---
.../resources/system/conf/relying-party-system.xml | 5 ++++
.../impl/RelyingPartyConfigurationSupport.java | 30 ++++++++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/idp-conf/src/main/resources/system/conf/relying-party-system.xml b/idp-conf/src/main/resources/system/conf/relying-party-system.xml
index 6695ec7..eee31bd 100644
--- a/idp-conf/src/main/resources/system/conf/relying-party-system.xml
+++ b/idp-conf/src/main/resources/system/conf/relying-party-system.xml
@@ -43,6 +43,11 @@
class="net.shibboleth.idp.saml.relyingparty.impl.RelyingPartyConfigurationSupport" factory-method="byTag"
c:trim="false" c:matchAll="false" />
+ <!-- Parent bean for RelyingParty overrides based on activation by tag. -->
+ <bean id="RelyingPartyByMappedTag" abstract="true" parent="RelyingParty"
+ class="net.shibboleth.idp.saml.relyingparty.impl.RelyingPartyConfigurationSupport" factory-method="byMappedTag"
+ c:trim="false" c:matchAll="false" />
+
<bean id="TagCandidate" abstract="true"
class="org.opensaml.saml.common.profile.logic.EntityAttributesPredicate.Candidate" />
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java
index 4e8a007..7ba7863 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/relyingparty/impl/RelyingPartyConfigurationSupport.java
@@ -33,6 +33,7 @@ import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import net.shibboleth.idp.profile.logic.RelyingPartyIdPredicate;
import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
+import net.shibboleth.idp.saml.profile.logic.MappedEntityAttributesPredicate;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.logic.StrategyIndirectedPredicate;
@@ -141,4 +142,33 @@ public final class RelyingPartyConfigurationSupport {
return config;
}
+ /**
+ * A shorthand method for constructing a {@link RelyingPartyConfiguration} with an activation condition based on
+ * a {@link MappedEntityAttributesPredicate}.
+ *
+ * @param candidates the candidate rules
+ * @param trim true iff tag values in metadata should be trimmed before comparison
+ * @param matchAll true iff all the candidate rules are required to match
+ *
+ * @return a default-constructed configuration with the appropriate condition set
+ */
+ @Nonnull public static RelyingPartyConfiguration byMappedTag(
+ @Nonnull @NonnullElements final Collection<Candidate> candidates, final boolean trim,
+ final boolean matchAll) {
+ Constraint.isNotNull(candidates, "Candidate list cannot be null");
+
+ // We adapt an OpenSAML Predicate applying to an EntityDescriptor by indirecting the lookup of the
+ // EntityDescriptor to a lookup sequence of PRC -> RPC -> SAMLMetadataContext -> EntityDescriptor.
+
+ final StrategyIndirectedPredicate<ProfileRequestContext,EntityDescriptor> indirectPredicate =
+ new StrategyIndirectedPredicate<>(
+ new EntityDescriptorLookupFunction().compose(new SAMLMetadataContextLookupFunction()),
+ new MappedEntityAttributesPredicate(candidates, trim, matchAll));
+
+ final RelyingPartyConfiguration config = new RelyingPartyConfiguration();
+ config.setActivationCondition(indirectPredicate);
+
+ return config;
+ }
+
}
\ 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