[java-oidc-common] 03/08: JCOMOIDC-148 - Add AttributeExtractionStrategy to OIDCSSORelyingPartyConfiguration

Codeberg noreply at shibboleth.net
Tue Feb 17 20:59:10 UTC 2026


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

codeberg pushed a commit to branch dev/JCOMOIDC-139
in repository java-oidc-common.

View the commit online:
https://codeberg.org/Shibboleth/java-oidc-common/commit/2a5fd725e40d63d12add416dd1f4229875ac3d68

commit 2a5fd725e40d63d12add416dd1f4229875ac3d68
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Thu Nov 27 14:13:25 2025 +0000

    JCOMOIDC-148 - Add AttributeExtractionStrategy to
    OIDCSSORelyingPartyConfiguration
    
         - Added missing implementation
    
    https://shibboleth.atlassian.net/browse/JCOMOIDC-148
---
 .../impl/DefaultOAuth2TokenConfiguration.java      | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
index 21a3b0d0..e805da1a 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
@@ -29,6 +29,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
 
 import com.nimbusds.oauth2.sdk.GrantType;
 
+import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.oidc.profile.config.impl.AbstractOIDCSSOConfiguration;
 import net.shibboleth.oidc.profile.oauth2.config.OAuth2TokenConfiguration;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
@@ -71,6 +72,10 @@ public class DefaultOAuth2TokenConfiguration extends AbstractOIDCSSOConfiguratio
      * being requested.
      */
     @Nonnull private Function<ProfileRequestContext, List<String>> resourceIndicatorsLookupStrategy;
+    
+    /** Lookup function for attribute extraction strategy. */
+    @Nonnull Function<ProfileRequestContext,Function<ProfileRequestContext,Collection<IdPAttribute>>>
+    attributeExtractionStrategyLookupStrategy;
 
     /**
      * Constructor.
@@ -93,6 +98,8 @@ public class DefaultOAuth2TokenConfiguration extends AbstractOIDCSSOConfiguratio
         issueIdTokenViaRefreshTokenPredicate = PredicateSupport.alwaysTrue();
         limitInitialAccessTokenToSelfPredicate = PredicateSupport.alwaysFalse();
         resourceIndicatorsLookupStrategy = FunctionSupport.constant(CollectionSupport.emptyList());
+        attributeExtractionStrategyLookupStrategy = FunctionSupport.constant(null);
+
     }
 
     @Override
@@ -286,4 +293,36 @@ public class DefaultOAuth2TokenConfiguration extends AbstractOIDCSSOConfiguratio
                        List.copyOf(StringSupport.normalizeStringCollection(resourceIndicators)));
            }
        }
+       
+       /** {@inheritDoc} */
+       @Override
+       public Function<ProfileRequestContext, Collection<IdPAttribute>> getAttributeExtractionStrategy(
+               @Nullable final ProfileRequestContext profileRequestContext) {
+           return attributeExtractionStrategyLookupStrategy.apply(profileRequestContext);
+       }
+       
+       /**
+        * Set the lookup strategy used to find the attribute extraction strategy for a given profile request context.
+        * 
+        * @param strategy The attributeExtractionStrategyLookupStrategy to set.
+        * 
+        * @since 3.4.0
+        */
+       public void setAttributeExtractionStrategyLookupStrategy(@Nonnull final
+               Function<ProfileRequestContext, Function<ProfileRequestContext, Collection<IdPAttribute>>> strategy) {
+           attributeExtractionStrategyLookupStrategy = Constraint.isNotNull(strategy,
+                   "Attribute extraction strategy lookup strategy cannot be null");
+       }
+       
+       /**
+        * Set the attribute extraction strategy.
+        * 
+        * @param strategy strategy function
+        * 
+        * @since 3.4.0
+        */
+       public void setAttributeExtractionStrategy(
+               @Nonnull final Function<ProfileRequestContext,Collection<IdPAttribute>> strategy) {
+           attributeExtractionStrategyLookupStrategy = FunctionSupport.constant(strategy);
+       }
 }
\ 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