[java-idp-oidc] branch main updated: JOIDC-18 - Work out better mechanism for overriding issuer in profiles

Scott Cantor cantor.2 at osu.edu
Fri Mar 19 13:32:49 UTC 2021


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

scantor pushed a commit to branch main
in repository java-idp-oidc.

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-oidc.git;a=commit;h=491a3edc549359fdb1b7020818d5073228994265

The following commit(s) were added to refs/heads/main by this push:
       new  491a3edc  JOIDC-18 - Work out better mechanism for overriding issuer in profiles
491a3edc is described below

commit 491a3edc549359fdb1b7020818d5073228994265
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Mar 19 09:32:47 2021 -0400

    JOIDC-18 - Work out better mechanism for overriding issuer in profiles
    
    https://issues.shibboleth.net/jira/browse/JOIDC-18
    
    Missed the UserInfo profile case.
---
 .../oidc/op/config/OIDCUserInfoConfiguration.java  | 30 +++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/config/OIDCUserInfoConfiguration.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/config/OIDCUserInfoConfiguration.java
index 244941c6..6f600b68 100644
--- a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/config/OIDCUserInfoConfiguration.java
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/plugin/oidc/op/config/OIDCUserInfoConfiguration.java
@@ -29,6 +29,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
 
 import net.shibboleth.idp.plugin.oidc.op.profile.config.OIDCProfileConfiguration;
 import net.shibboleth.idp.profile.config.AbstractConditionalProfileConfiguration;
+import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
@@ -40,7 +41,7 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
  * Profile configuration for the OpenID Connect core protocol userinfo endpoint.
  */
 public class OIDCUserInfoConfiguration extends AbstractConditionalProfileConfiguration
-        implements OIDCProfileConfiguration {
+        implements OIDCProfileConfiguration, OverriddenIssuerProfileConfiguration {
 
     /** OIDC base protocol URI. */
     @Nonnull @NotEmpty public static final String PROTOCOL_URI = "http://openid.net/specs/openid-connect-core-1_0.html";
@@ -48,6 +49,9 @@ public class OIDCUserInfoConfiguration extends AbstractConditionalProfileConfigu
     /** ID for this profile configuration. */
     @Nonnull @NotEmpty public static final String PROFILE_ID = "http://shibboleth.net/ns/profiles/oidc/userinfo";
 
+    /** Lookup function to override issuer value. */
+    @Nonnull private Function<ProfileRequestContext,String> issuerLookupStrategy;
+
     /** Lookup function to supply attribute IDs to omit from UserInfo token. */
     @Nonnull private Function<ProfileRequestContext,Set<String>> deniedUserInfoAttributesLookupStrategy;
     
@@ -66,9 +70,33 @@ public class OIDCUserInfoConfiguration extends AbstractConditionalProfileConfigu
     public OIDCUserInfoConfiguration(@Nonnull @NotEmpty final String profileId) {
         super(profileId);
         
+        issuerLookupStrategy = FunctionSupport.constant(null);
         deniedUserInfoAttributesLookupStrategy = FunctionSupport.constant(null);
     }
 
+    /** {@inheritDoc} */
+    @Nullable @NotEmpty public String getIssuer(@Nullable final ProfileRequestContext profileRequestContext) {
+        return issuerLookupStrategy.apply(profileRequestContext);
+    }
+    
+    /**
+     * Set overridden issuer value.
+     * 
+     * @param issuer issuer value
+     */
+    public void setIssuer(@Nullable @NotEmpty final String issuer) {
+        issuerLookupStrategy = FunctionSupport.constant(issuer);
+    }
+    
+    /**
+     * Sets lookup strategy for overridden issuer value.
+     * 
+     * @param strategy lookup strategy
+     */
+    public void setIssuerLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
+        issuerLookupStrategy = Constraint.isNotNull(strategy, "Issuer lookup strategy cannot be null");
+    }
+    
     /**
      * Get the set of attribute IDs which should be omitted from the UserInfo token.
      * 

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


More information about the commits mailing list