[java-oidc-common] 01/02: Extend SSO config with access token type setting.
Scott Cantor
cantor.2 at osu.edu
Mon Apr 18 17:33:15 UTC 2022
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch dev/JOIDC-7
in repository java-oidc-common.
View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=9335253ada3dfc9f6913c38b308bb81b3b0c977b
commit 9335253ada3dfc9f6913c38b308bb81b3b0c977b
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Apr 14 14:49:05 2022 -0400
Extend SSO config with access token type setting.
---
.../config/AbstractOIDCSSOConfiguration.java | 39 ++++++++++++++++++++++
.../navigate/AccessTokenTypeLookupFunction.java | 3 ++
.../config/OAuth2TokenAudienceConfiguration.java | 1 -
3 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/AbstractOIDCSSOConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/AbstractOIDCSSOConfiguration.java
index ce49d2c..95b3c7f 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/AbstractOIDCSSOConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/AbstractOIDCSSOConfiguration.java
@@ -71,6 +71,9 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
/** Lookup function to supply ID token lifetime. */
@Nonnull private Function<ProfileRequestContext,Duration> idTokenLifetimeLookupStrategy;
+ /** Lookup functioon to supply access token type. */
+ @Nonnull private Function<ProfileRequestContext,String> accessTokenTypeLookupStrategy;
+
/** Lookup function to supply access token lifetime. */
@Nonnull private Function<ProfileRequestContext,Duration> accessTokenLifetimeLookupStrategy;
@@ -98,6 +101,7 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
allowPKCEPlainPredicate = Predicates.alwaysFalse();
idTokenLifetimeLookupStrategy = FunctionSupport.constant(Duration.ofHours(1));
+ accessTokenTypeLookupStrategy = FunctionSupport.constant(null);
accessTokenLifetimeLookupStrategy = FunctionSupport.constant(Duration.ofMinutes(10));
refreshTokenLifetimeLookupStrategy = FunctionSupport.constant(Duration.ofHours(2));
@@ -278,6 +282,41 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
public void setIDTokenLifetimeLookupStrategy(@Nonnull final Function<ProfileRequestContext,Duration> strategy) {
idTokenLifetimeLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
}
+
+ /**
+ * Get access token type.
+ *
+ * @param profileRequestContext profile request context
+ *
+ * @return access token type, or null for unspecified/opaque
+ *
+ * @since 2.1.0
+ */
+ @Nullable @NotEmpty public String getAccessTokenType(@Nullable final ProfileRequestContext profileRequestContext) {
+ return accessTokenTypeLookupStrategy.apply(profileRequestContext);
+ }
+
+ /**
+ * Set access token type.
+ *
+ * @param type token type, or null for unspecified/opaque
+ *
+ * @since 2.1.0
+ */
+ public void setAccessTokenType(@Nullable @NotEmpty final String type) {
+ accessTokenTypeLookupStrategy = FunctionSupport.constant(StringSupport.trimOrNull(type));
+ }
+
+ /**
+ * Set lookup strategy for access token type.
+ *
+ * @param strategy lookup strategy
+ *
+ * @since 2.1.0
+ */
+ public void setAccessTokenTypeLookupStrategy(@Nonnull final Function<ProfileRequestContext,String> strategy) {
+ accessTokenTypeLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
+ }
/**
* Get access token lifetime.
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/AccessTokenTypeLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/AccessTokenTypeLookupFunction.java
index 1693732..41a91ac 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/AccessTokenTypeLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/AccessTokenTypeLookupFunction.java
@@ -24,6 +24,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import net.shibboleth.idp.profile.config.ProfileConfiguration;
import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
+import net.shibboleth.oidc.profile.config.AbstractOIDCSSOConfiguration;
import net.shibboleth.oidc.profile.oauth2.config.OAuth2TokenAudienceConfiguration;
/**
@@ -44,6 +45,8 @@ public class AccessTokenTypeLookupFunction extends AbstractRelyingPartyLookupFun
final ProfileConfiguration pc = rpc.getProfileConfig();
if (pc instanceof OAuth2TokenAudienceConfiguration) {
return ((OAuth2TokenAudienceConfiguration) pc).getAccessTokenType(input);
+ } else if (pc instanceof AbstractOIDCSSOConfiguration) {
+ return ((AbstractOIDCSSOConfiguration) pc).getAccessTokenType(input);
}
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceConfiguration.java
index 2090b9e..6d0a9bf 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceConfiguration.java
@@ -167,7 +167,6 @@ public class OAuth2TokenAudienceConfiguration extends AbstractConditionalProfil
public void setEncryptionOptionalPredicate(@Nonnull final Predicate<ProfileRequestContext> condition) {
encryptionOptionalPredicate = Constraint.isNotNull(condition, "Encryption optional predicate cannot be null");
}
-
/**
* Get access token type.
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list