[java-oidc-common] branch main updated: Harmonised the use of enums in profile configurations.
Henri Mikkonen
henri.mikkonen at iki.fi
Thu Jun 30 13:37:40 UTC 2022
This is an automated email from the git hooks/post-receive script.
hjmikkon pushed a commit to branch main
in repository java-oidc-common.
View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=02570175707820030ed03b40dce2f3e152c98e30
The following commit(s) were added to refs/heads/main by this push:
new 0257017 Harmonised the use of enums in profile configurations.
0257017 is described below
commit 02570175707820030ed03b40dce2f3e152c98e30
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Thu Jun 30 16:36:26 2022 +0300
Harmonised the use of enums in profile configurations.
Now they're handled in the same way as in SAML2's BrowserSSOProfileConfiguration:
getters and setter use enum, as the lookup function deals them as strings.
---
.../config/OIDCAuthorizationConfiguration.java | 29 ++++++++++----------
.../config/OAuth2TokenRevocationConfiguration.java | 31 +++++++++++-----------
...enticationRequestMessageEncoderFactoryTest.java | 6 ++---
3 files changed, 34 insertions(+), 32 deletions(-)
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthorizationConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthorizationConfiguration.java
index 2cd8231..fb7ba9d 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthorizationConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthorizationConfiguration.java
@@ -92,7 +92,7 @@ public class OIDCAuthorizationConfiguration extends AbstractOIDCSSOConfiguration
* Which HTTP method should be used to issue OIDC authentication requests.
* Supported values are POST and GET. The default is GET.
*/
- @Nonnull private Function<ProfileRequestContext,OIDCHttpRequestMethod> httpRequestMethodLookupStrategy;
+ @Nonnull private Function<ProfileRequestContext,String> httpRequestMethodLookupStrategy;
/** Lookup function to supply strategy bi-function for manipulating authorization code claims set. */
@Nonnull
@@ -122,7 +122,7 @@ public class OIDCAuthorizationConfiguration extends AbstractOIDCSSOConfiguration
encodedAttributesLookupStrategy = FunctionSupport.constant(null);
deniedUserInfoAttributesLookupStrategy = FunctionSupport.constant(null);
- httpRequestMethodLookupStrategy = FunctionSupport.constant(OIDCHttpRequestMethod.GET);
+ httpRequestMethodLookupStrategy = FunctionSupport.constant(OIDCHttpRequestMethod.GET.toString());
includeIssuerInResponsePredicate = Predicates.alwaysFalse();
@@ -264,7 +264,7 @@ public class OIDCAuthorizationConfiguration extends AbstractOIDCSSOConfiguration
* @param strategy the strategy to set.
*/
public void setHttpRequestMethodLookupStrategy(
- @Nonnull final Function<ProfileRequestContext, OIDCHttpRequestMethod> strategy) {
+ @Nonnull final Function<ProfileRequestContext, String> strategy) {
httpRequestMethodLookupStrategy =
Constraint.isNotNull(strategy, "HTTP request method strategy can not be null");
}
@@ -274,16 +274,8 @@ public class OIDCAuthorizationConfiguration extends AbstractOIDCSSOConfiguration
*
* @param method the HTTP method to set, either POST or GET.
*/
- public void setHttpRequestMethod(@Nonnull @NotEmpty final String method){
- Constraint.isNotEmpty(method, "HTTP request method strategy can not be null or empty");
- if ("POST".equals(method)) {
- httpRequestMethodLookupStrategy = FunctionSupport.constant(OIDCHttpRequestMethod.POST);
- } else if ("GET".equals(method)) {
- httpRequestMethodLookupStrategy = FunctionSupport.constant(OIDCHttpRequestMethod.GET);
- } else {
- throw new ConstraintViolationException("OIDC HTTP request method not "
- + "recognized, must be one of POST or GET");
- }
+ public void setHttpRequestMethod(@Nonnull @NotEmpty final OIDCHttpRequestMethod method){
+ httpRequestMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
}
/**
@@ -294,7 +286,16 @@ public class OIDCAuthorizationConfiguration extends AbstractOIDCSSOConfiguration
* @return the HTTP request method
*/
public OIDCHttpRequestMethod getHttpRequestMethod(@Nullable final ProfileRequestContext profileRequestContext) {
- return httpRequestMethodLookupStrategy.apply(profileRequestContext);
+ final String method = httpRequestMethodLookupStrategy.apply(profileRequestContext);
+ if (method != null) {
+ try {
+ return OIDCHttpRequestMethod.valueOf(method);
+ } catch (final IllegalArgumentException e) {
+ throw new ConstraintViolationException("Unexpected HTTP method value: '" + method + "': "
+ + e.getMessage());
+ }
+ }
+ return null;
}
/**
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
index 0f5bc93..a6c51b0 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
@@ -42,7 +42,7 @@ public class OAuth2TokenRevocationConfiguration extends AbstractOAuth2TokenValid
/** ID for this profile configuration. */
@Nonnull @NotEmpty public static final String PROFILE_ID = "http://shibboleth.net/ns/profiles/oauth2/revocation";
- /** Enumeration of the HTTP methods used in OIDC authentication requests.*/
+ /** Enumeration of the OAuth2 token revocation methods. */
public enum OAuth2TokenRevocationMethod {
/**
* Revoke full chain of tokens (from authorization code (or initial access token) onwards).
@@ -58,7 +58,7 @@ public class OAuth2TokenRevocationConfiguration extends AbstractOAuth2TokenValid
* Which revocation method should be used when revoking a token.
* Supported values are CHAIN and TOKEN. The default is CHAIN.
*/
- @Nonnull private Function<ProfileRequestContext,OAuth2TokenRevocationMethod> revocationMethodLookupStrategy;
+ @Nonnull private Function<ProfileRequestContext,String> revocationMethodLookupStrategy;
/** Lookup function to supply revocation lifetime. */
@Nonnull private Function<ProfileRequestContext,Duration> revocationLifetimeLookupStrategy;
@@ -68,7 +68,7 @@ public class OAuth2TokenRevocationConfiguration extends AbstractOAuth2TokenValid
*/
public OAuth2TokenRevocationConfiguration() {
this(PROFILE_ID);
- revocationMethodLookupStrategy = FunctionSupport.constant(OAuth2TokenRevocationMethod.CHAIN);
+ revocationMethodLookupStrategy = FunctionSupport.constant(OAuth2TokenRevocationMethod.CHAIN.toString());
revocationLifetimeLookupStrategy = FunctionSupport.constant(Duration.ofHours(6));
}
@@ -89,7 +89,7 @@ public class OAuth2TokenRevocationConfiguration extends AbstractOAuth2TokenValid
* @since 2.1.0
*/
public void setRevocationMethodLookupStrategy(
- @Nonnull final Function<ProfileRequestContext,OAuth2TokenRevocationMethod> strategy) {
+ @Nonnull final Function<ProfileRequestContext,String> strategy) {
revocationMethodLookupStrategy = Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
}
@@ -100,16 +100,8 @@ public class OAuth2TokenRevocationConfiguration extends AbstractOAuth2TokenValid
*
* @since 2.1.0
*/
- public void setRevocationMethod(@Nonnull @NotEmpty final String method) {
- Constraint.isNotEmpty(method, "OAuth2 token revocation method strategy can not be null or empty");
- if ("CHAIN".equals(method)) {
- revocationMethodLookupStrategy = FunctionSupport.constant(OAuth2TokenRevocationMethod.CHAIN);
- } else if ("TOKEN".equals(method)) {
- revocationMethodLookupStrategy = FunctionSupport.constant(OAuth2TokenRevocationMethod.TOKEN);
- } else {
- throw new ConstraintViolationException("OAuth2 token revocation method '"
- + "' not recognized, must be one of CHAIN or TOKEN");
- }
+ public void setRevocationMethod(@Nonnull @NotEmpty final OAuth2TokenRevocationMethod method) {
+ revocationMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
}
/**
@@ -122,7 +114,16 @@ public class OAuth2TokenRevocationConfiguration extends AbstractOAuth2TokenValid
*/
public OAuth2TokenRevocationMethod getRevocationMethod(
@Nullable final ProfileRequestContext profileRequestContext) {
- return revocationMethodLookupStrategy.apply(profileRequestContext);
+ final String method = revocationMethodLookupStrategy.apply(profileRequestContext);
+ if (method != null) {
+ try {
+ return OAuth2TokenRevocationMethod.valueOf(method);
+ } catch (final IllegalArgumentException e) {
+ throw new ConstraintViolationException("Unexpected revocation method value: '" + method + "': "
+ + e.getMessage());
+ }
+ }
+ return null;
}
/**
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/AuthenticationRequestMessageEncoderFactoryTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/AuthenticationRequestMessageEncoderFactoryTest.java
index 76485ac..24dbb79 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/AuthenticationRequestMessageEncoderFactoryTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/AuthenticationRequestMessageEncoderFactoryTest.java
@@ -55,7 +55,7 @@ public class AuthenticationRequestMessageEncoderFactoryTest {
final ProfileRequestContext prc = new ProfileRequestContext();
// mock a profile config to request form POST serialization
final OIDCAuthorizationConfiguration config = new OIDCAuthorizationConfiguration();
- config.setHttpRequestMethodLookupStrategy(rc -> OIDCHttpRequestMethod.POST);
+ config.setHttpRequestMethodLookupStrategy(rc -> OIDCHttpRequestMethod.POST.toString());
final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class, true);
rpCtx.setProfileConfig(config);
@@ -86,7 +86,7 @@ public class AuthenticationRequestMessageEncoderFactoryTest {
final ProfileRequestContext prc = new ProfileRequestContext();
// mock a profile config to request form POST serialization
final OIDCAuthorizationConfiguration config = new OIDCAuthorizationConfiguration();
- config.setHttpRequestMethodLookupStrategy(rc -> OIDCHttpRequestMethod.GET);
+ config.setHttpRequestMethodLookupStrategy(rc -> OIDCHttpRequestMethod.GET.toString());
final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class, true);
rpCtx.setProfileConfig(config);
@@ -118,7 +118,7 @@ public class AuthenticationRequestMessageEncoderFactoryTest {
final ProfileRequestContext prc = new ProfileRequestContext();
// mock a profile config to request form POST serialization
final OIDCAuthorizationConfiguration config = new OIDCAuthorizationConfiguration();
- config.setHttpRequestMethodLookupStrategy(rc -> OIDCHttpRequestMethod.POST);
+ config.setHttpRequestMethodLookupStrategy(rc -> OIDCHttpRequestMethod.POST.toString());
final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class, true);
rpCtx.setProfileConfig(config);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list