[java-oidc-common] branch main updated: JCOMOIDC-105 - Profile configuration setting to require OIDC authentication request
Henri Mikkonen
henri.mikkonen at iki.fi
Tue Mar 26 11:13:25 UTC 2024
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=0049c772ade69b18aa85b84be0a69d480b83d216
The following commit(s) were added to refs/heads/main by this push:
new 0049c77 JCOMOIDC-105 - Profile configuration setting to require OIDC authentication request
0049c77 is described below
commit 0049c772ade69b18aa85b84be0a69d480b83d216
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Tue Mar 26 13:12:30 2024 +0200
JCOMOIDC-105 - Profile configuration setting to require OIDC authentication request
https://shibboleth.atlassian.net/browse/JCOMOIDC-105
Refactored the requireAuthenticationRequestPredicate to use lookup strategy to enable
MDDriven-wiring of the predicate.
---
.../DefaultOIDCAuthorizationConfiguration.java | 29 ++++++++++++++++++----
1 file changed, 24 insertions(+), 5 deletions(-)
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 7b5c85f..1d887d4 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
@@ -143,7 +143,8 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
@Nonnull private Function<ProfileRequestContext,Set<String>> responseModesLookupStrategy;
/** Whether client is required to use OIDC authentication request vs plain OAuth2 authorization request. */
- @Nonnull private Predicate<ProfileRequestContext> requireAuthenticationRequestPredicate;
+ @Nonnull private Function<ProfileRequestContext, Predicate<ProfileRequestContext>>
+ requireAuthenticationRequestPredicateLookupStrategy;
/**
* Constructor.
@@ -185,7 +186,8 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
tlsServerValidationOnlyPredicate = PredicateSupport.alwaysFalse();
displayLookupStrategy = FunctionSupport.constant(null);
responseModesLookupStrategy = FunctionSupport.constant(CollectionSupport.emptySet());
- requireAuthenticationRequestPredicate = PredicateSupport.alwaysTrue();
+ requireAuthenticationRequestPredicateLookupStrategy =
+ FunctionSupport.constant(PredicateSupport.alwaysTrue());
}
/** {@inheritDoc} */
@@ -945,7 +947,8 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
/** {@inheritDoc} */
@Override
public boolean isRequireAuthenticationRequest(@Nullable final ProfileRequestContext profileRequestContext) {
- return requireAuthenticationRequestPredicate.test(profileRequestContext);
+ return requireAuthenticationRequestPredicateLookupStrategy.apply(profileRequestContext)
+ .test(profileRequestContext);
}
/**
@@ -956,7 +959,8 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
* @since 3.1.0
*/
public void setRequireAuthenticationRequest(final boolean flag) {
- requireAuthenticationRequestPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
+ requireAuthenticationRequestPredicateLookupStrategy = FunctionSupport.constant(flag ?
+ PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse());
}
/**
@@ -968,7 +972,22 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
* @since 3.1.0
*/
public void setRequireAuthenticationRequestPredicate(@Nonnull final Predicate<ProfileRequestContext> condition) {
- requireAuthenticationRequestPredicate = Constraint.isNotNull(condition, "Condition cannot be null");
+ requireAuthenticationRequestPredicateLookupStrategy = FunctionSupport.constant(
+ Constraint.isNotNull(condition, "Condition cannot be null"));
+ }
+
+ /**
+ * Set the lookup strategy to determine whether client is required to use OIDC authentication request vs plain
+ * OAuth2 authorization request.
+ *
+ * @param strategy the strategy to use
+ *
+ * @since 3.1.0
+ */
+ public void setRequireAuthenticationRequestPredicateLookupStrategy(
+ @Nonnull final Function<ProfileRequestContext, Predicate<ProfileRequestContext>> strategy) {
+ requireAuthenticationRequestPredicateLookupStrategy =
+ Constraint.isNotNull(strategy, "Lookup strategy cannot be null");
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list