[java-identity-provider] branch main updated: Rebase IdP-specific RP config support class on shared version.

Scott Cantor cantor.2 at osu.edu
Tue Feb 28 20:32:13 UTC 2023


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=926240da9fe97a1717cfd576cd1f778a353b3417

The following commit(s) were added to refs/heads/main by this push:
     new 926240da9 Rebase IdP-specific RP config support class on shared version.
926240da9 is described below

commit 926240da9fe97a1717cfd576cd1f778a353b3417
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Feb 28 15:32:09 2023 -0500

    Rebase IdP-specific RP config support class on shared version.
---
 .../impl/RelyingPartyConfigurationSupport.java     | 93 +++++-----------------
 .../RelyingPartyConfigurationResolverTest.java     |  2 +-
 2 files changed, 22 insertions(+), 73 deletions(-)

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 161f8e22a..ce50b7923 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
@@ -22,24 +22,16 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.saml.common.messaging.context.navigate.EntityDescriptorLookupFunction;
 import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate;
 import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate.Candidate;
-import org.opensaml.saml.common.profile.logic.EntityGroupNamePredicate;
 import org.opensaml.saml.metadata.resolver.MetadataResolver;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 
 import net.shibboleth.idp.profile.relyingparty.RelyingPartyConfiguration;
-import net.shibboleth.profile.context.logic.RelyingPartyIdPredicate;
 import net.shibboleth.saml.profile.context.logic.MappedEntityAttributesPredicate;
-import net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.logic.StrategyIndirectedPredicate;
 
 /**
- * Support functions for building {@link RelyingPartyConfiguration} objects with SAML functionality.
+ * Extension of shared helper class using IdP-specific configuration class.
  */
 public final class RelyingPartyConfigurationSupport {
     
@@ -57,23 +49,14 @@ public final class RelyingPartyConfigurationSupport {
      * @param relyingPartyIds the relying parties for which the configuration should be active
      * 
      * @return  a default-constructed configuration with the appropriate condition set
+     * 
+     * @throws Exception if the configuration class cannot be constructed via the default constructor 
      */
     @Nonnull public static RelyingPartyConfiguration byName(
-            @Nonnull @NonnullElements final Collection<String> relyingPartyIds) {
-
-        Constraint.isNotNull(relyingPartyIds, "Relying Party ID list cannot be null");
+            @Nonnull @NonnullElements final Collection<String> relyingPartyIds) throws Exception {
 
-        final RelyingPartyConfiguration config = new RelyingPartyConfiguration();
-        config.setActivationCondition(new RelyingPartyIdPredicate(relyingPartyIds));
-        
-        final StringBuffer name = new StringBuffer("EntityNames[");
-        for (final String rpId: relyingPartyIds) {
-            name.append(rpId).append(',');
-            
-        }
-        name.append(']');
-        config.setId(name.toString());
-        return config;
+        return net.shibboleth.saml.relyingparty.RelyingPartyConfigurationSupport.byName(RelyingPartyConfiguration.class,
+                relyingPartyIds);
     }
 
     /**
@@ -85,31 +68,15 @@ public final class RelyingPartyConfigurationSupport {
      * @param resolver optional metadata source for affiliation lookup
      * 
      * @return  a default-constructed configuration with the appropriate condition set
+     * 
+     * @throws Exception if the configuration class cannot be constructed via the default constructor 
      */
     @Nonnull public static RelyingPartyConfiguration byGroup(
             @Nonnull @NonnullElements final Collection<String> groupNames,
-            @Nullable final MetadataResolver resolver) {
-        Constraint.isNotNull(groupNames, "Group name list cannot be null");
+            @Nullable final MetadataResolver resolver) throws Exception {
         
-        // 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 EntityGroupNamePredicate(groupNames, resolver));
-        
-        final RelyingPartyConfiguration config = new RelyingPartyConfiguration();
-        config.setActivationCondition(indirectPredicate);
-
-        final StringBuffer name = new StringBuffer("EntityGroups[");
-        for (final String group: groupNames) {
-            name.append(group).append(',');
-            
-        }
-        name.append(']');
-        config.setId(name.toString());
-        return config;
+        return net.shibboleth.saml.relyingparty.RelyingPartyConfigurationSupport.byGroup(
+                RelyingPartyConfiguration.class, groupNames, resolver);
     }
 
     
@@ -122,24 +89,15 @@ public final class RelyingPartyConfigurationSupport {
      * @param matchAll true iff all the candidate rules are required to match
      * 
      * @return  a default-constructed configuration with the appropriate condition set
+     * 
+     * @throws Exception if the configuration class cannot be constructed via the default constructor 
      */
     @Nonnull public static RelyingPartyConfiguration byTag(
             @Nonnull @NonnullElements final Collection<Candidate> candidates, final boolean trim,
-            final boolean matchAll) {
-        Constraint.isNotNull(candidates, "Candidate list cannot be null");
+            final boolean matchAll) throws Exception {
         
-        // 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 EntityAttributesPredicate(candidates, trim, matchAll));
-        
-        final RelyingPartyConfiguration config = new RelyingPartyConfiguration();
-        config.setActivationCondition(indirectPredicate);
-
-        return config;
+        return net.shibboleth.saml.relyingparty.RelyingPartyConfigurationSupport.byTag(RelyingPartyConfiguration.class,
+                candidates, trim, matchAll);
     }
 
     /**
@@ -151,24 +109,15 @@ public final class RelyingPartyConfigurationSupport {
      * @param matchAll true iff all the candidate rules are required to match
      * 
      * @return  a default-constructed configuration with the appropriate condition set
+     * 
+     * @throws Exception if the configuration class cannot be constructed via the default constructor 
      */
     @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");
+            final boolean matchAll) throws Exception {
         
-        // 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;
+        return net.shibboleth.saml.relyingparty.RelyingPartyConfigurationSupport.byMappedTag(
+                RelyingPartyConfiguration.class, candidates, trim, matchAll);
     }
 
 }
\ No newline at end of file
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java
index bf7df289f..af691f64c 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java
@@ -65,7 +65,7 @@ public class RelyingPartyConfigurationResolverTest extends XMLObjectBaseTestCase
     private DefaultRelyingPartyConfigurationResolver resolver;
         
     @BeforeMethod
-    public void setup() throws ComponentInitializationException {
+    public void setup() throws Exception {
         anonRP = new net.shibboleth.idp.profile.relyingparty.RelyingPartyConfiguration();
         anonRP.setId("anonRPId");
         anonRP.setResponderId("anonRPResp");

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


More information about the commits mailing list