[java-shib-profile] branch main updated: Allow for no default relying party config for SP purposes.

Scott Cantor cantor.2 at osu.edu
Mon Mar 6 16:24:11 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-profile.

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

The following commit(s) were added to refs/heads/main by this push:
     new b9ca9e8  Allow for no default relying party config for SP purposes.
b9ca9e8 is described below

commit b9ca9e87ed44da1f64dd7d246a9749d9f7db356d
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Mar 6 11:24:08 2023 -0500

    Allow for no default relying party config for SP purposes.
---
 .../DefaultRelyingPartyConfigurationResolver.java  | 35 ++++++++++++++--------
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/shib-profile-impl/src/main/java/net/shibboleth/profile/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java b/shib-profile-impl/src/main/java/net/shibboleth/profile/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java
index e0e29da..3c538e7 100644
--- a/shib-profile-impl/src/main/java/net/shibboleth/profile/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java
+++ b/shib-profile-impl/src/main/java/net/shibboleth/profile/relyingparty/impl/DefaultRelyingPartyConfigurationResolver.java
@@ -44,7 +44,6 @@ import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
 import net.shibboleth.profile.relyingparty.RelyingPartyConfigurationResolver;
 import net.shibboleth.profile.relyingparty.VerifiedProfileCriterion;
-import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
@@ -52,7 +51,6 @@ import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.Criterion;
@@ -87,7 +85,7 @@ public class DefaultRelyingPartyConfigurationResolver extends AbstractIdentifiab
     @Nonnull private List<RelyingPartyConfiguration> rpConfigurations;
 
     /** Default relying party, used if no other verified instance matches. */
-    @NonnullAfterInit private RelyingPartyConfiguration defaultRelyingPartyConfiguration;
+    @Nullable private RelyingPartyConfiguration defaultRelyingPartyConfiguration;
 
     /** Unverified relying party configuration, used if the request is unverified. */
     @Nullable private RelyingPartyConfiguration unverifiedConfiguration;
@@ -139,7 +137,7 @@ public class DefaultRelyingPartyConfigurationResolver extends AbstractIdentifiab
      * 
      * @return default configuration
      */
-    @NonnullAfterInit public RelyingPartyConfiguration getDefaultConfiguration() {
+    @Nullable public RelyingPartyConfiguration getDefaultConfiguration() {
         return defaultRelyingPartyConfiguration;
     }
 
@@ -148,10 +146,10 @@ public class DefaultRelyingPartyConfigurationResolver extends AbstractIdentifiab
      * 
      * @param configuration default configuration
      */
-    public void setDefaultConfiguration(@Nonnull final RelyingPartyConfiguration configuration) {
+    public void setDefaultConfiguration(@Nullable final RelyingPartyConfiguration configuration) {
         checkSetterPreconditions();
         
-        defaultRelyingPartyConfiguration = Constraint.isNotNull(configuration, "Default RelyingPartyConfiguration cannot be null");
+        defaultRelyingPartyConfiguration = configuration;
     }
 
     /**
@@ -238,10 +236,15 @@ public class DefaultRelyingPartyConfigurationResolver extends AbstractIdentifiab
         }
 
         if (matches.isEmpty()) {
-            log.debug("No matching relying party configuration applicable, returning default: {}",
-                    getDefaultConfiguration().getId());
-            assert defaultRelyingPartyConfiguration != null;
-            return CollectionSupport.singleton(defaultRelyingPartyConfiguration);
+            if (defaultRelyingPartyConfiguration != null) {
+                log.debug("No matching relying party configuration applicable, returning default: {}",
+                        defaultRelyingPartyConfiguration.getId());
+                assert defaultRelyingPartyConfiguration != null;
+                return CollectionSupport.singleton(defaultRelyingPartyConfiguration);
+            } else {
+                log.warn("No matching relying party configuration applicable, returning nothing");
+                return CollectionSupport.emptyList();
+            }
         }
         return matches;
     }
@@ -278,9 +281,15 @@ public class DefaultRelyingPartyConfigurationResolver extends AbstractIdentifiab
             log.debug("Relying party configuration {} is not applicable", configuration.getId());
         }
 
-        log.debug("No relying party configurations applicable, returning default: {}",
-                getDefaultConfiguration().getId());
-        return getDefaultConfiguration();
+        if (defaultRelyingPartyConfiguration != null) {
+            log.debug("No matching relying party configuration applicable, returning default: {}",
+                    defaultRelyingPartyConfiguration.getId());
+            assert defaultRelyingPartyConfiguration != null;
+            return defaultRelyingPartyConfiguration;
+        }
+
+        log.warn("No matching relying party configuration applicable, returning nothing");
+        return null;
     }
 
     /** {@inheritDoc} */

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


More information about the commits mailing list