[java-oidc-common] 17/20: JCOMOIDC-148 - Add AttributeExtractionStrategy to OIDCSSORelyingPartyConfiguration
Codeberg
noreply at shibboleth.net
Tue Feb 17 20:14:52 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/6800f3957543c93df5c179bd4283f2d8c893d4d0
commit 6800f3957543c93df5c179bd4283f2d8c893d4d0
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Thu Nov 27 15:19:37 2025 +0000
JCOMOIDC-148 - Add AttributeExtractionStrategy to
OIDCSSORelyingPartyConfiguration
- Add implementation to the parent AbstractOIDCSSOConfiguration and
remove from the child implementations
https://shibboleth.atlassian.net/browse/JCOMOIDC-148
---
.../config/impl/AbstractOIDCSSOConfiguration.java | 40 +++++++++++++++++++++-
.../DefaultOIDCAuthorizationConfiguration.java | 38 --------------------
.../impl/DefaultOAuth2TokenConfiguration.java | 37 --------------------
3 files changed, 39 insertions(+), 76 deletions(-)
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
index 40256873..47f5d686 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
@@ -29,6 +29,7 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
+import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.oidc.profile.config.OIDCSSOProviderConfiguration;
import net.shibboleth.oidc.profile.config.OIDCSSORelyingPartyConfiguration;
import net.shibboleth.oidc.profile.oauth2.config.impl.AbstractOAuth2FlowAwareProfileConfiguration;
@@ -109,7 +110,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
@Nonnull private Predicate<ProfileRequestContext> strictScopeValidationPredicate;
/** Lookup function for attribute resolution principal. */
- @Nonnull Function<ProfileRequestContext,String> attributeResolutionPrincipalLookupStrategy;
+ @Nonnull Function<ProfileRequestContext,String> attributeResolutionPrincipalLookupStrategy;
+
+ /** Lookup function for attribute extraction strategy. */
+ @Nonnull Function<ProfileRequestContext,Function<ProfileRequestContext,Collection<IdPAttribute>>>
+ attributeExtractionStrategyLookupStrategy;
/**
* Creates a new configuration instance.
@@ -143,6 +148,7 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
alwaysIssueBearerAccessTokenPredicate = PredicateSupport.alwaysFalse();
strictScopeValidationPredicate = PredicateSupport.alwaysFalse();
attributeResolutionPrincipalLookupStrategy = FunctionSupport.constant(null);
+ attributeExtractionStrategyLookupStrategy = FunctionSupport.constant(null);
}
/** {@inheritDoc} */
@@ -733,5 +739,37 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
attributeResolutionPrincipalLookupStrategy =
Constraint.isNotNull(strategy, "Resolution principal lookup strategy cannot be null");
}
+
+ /** {@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
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
index 8f82180b..c14bec43 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
@@ -29,7 +29,6 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
-import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
import net.shibboleth.oidc.profile.config.OIDCAuthorizationConfiguration;
import net.shibboleth.oidc.profile.config.OIDCSSOProfileConfiguration;
@@ -164,10 +163,6 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
* Lookup function to supply a JSON map of requested claims.
*/
@Nonnull private Function<ProfileRequestContext, Map<String, Object>> requestedClaimsLookupStrategy;
-
- /** Lookup function for attribute extraction strategy. */
- @Nonnull Function<ProfileRequestContext,Function<ProfileRequestContext,Collection<IdPAttribute>>>
- attributeExtractionStrategyLookupStrategy;
/**
* Constructor.
@@ -215,7 +210,6 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
requirePushedAuthorizationRequestPredicate = PredicateSupport.alwaysFalse();
resourceIndicatorsLookupStrategy = FunctionSupport.constant(CollectionSupport.emptyList());
requestedClaimsLookupStrategy = FunctionSupport.constant(null);
- attributeExtractionStrategyLookupStrategy = FunctionSupport.constant(null);
}
/** {@inheritDoc} */
@@ -1167,36 +1161,4 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
requestedClaimsLookupStrategy = Constraint.isNotNull(strategy,
"RequestedClaims lookup strategy can not be null");
}
-
- /** {@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);
- }
}
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 e805da1a..8571f4c7 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,7 +29,6 @@ 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;
@@ -72,10 +71,6 @@ 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.
@@ -98,7 +93,6 @@ public class DefaultOAuth2TokenConfiguration extends AbstractOIDCSSOConfiguratio
issueIdTokenViaRefreshTokenPredicate = PredicateSupport.alwaysTrue();
limitInitialAccessTokenToSelfPredicate = PredicateSupport.alwaysFalse();
resourceIndicatorsLookupStrategy = FunctionSupport.constant(CollectionSupport.emptyList());
- attributeExtractionStrategyLookupStrategy = FunctionSupport.constant(null);
}
@@ -294,35 +288,4 @@ public class DefaultOAuth2TokenConfiguration extends AbstractOIDCSSOConfiguratio
}
}
- /** {@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