[java-oidc-common] branch dev/JCOMOIDC-139 updated: Fix redirect_uri in token request
Codeberg
noreply at shibboleth.net
Tue Feb 17 18:34:30 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/476d4b0dd5fb348efc744084b99e83a40a269192
The following commit(s) were added to refs/heads/dev/JCOMOIDC-139 by this push:
new 476d4b0d Fix redirect_uri in token request
476d4b0d is described below
commit 476d4b0dd5fb348efc744084b99e83a40a269192
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Tue Feb 17 18:34:22 2026 +0000
Fix redirect_uri in token request
- allow for a configurable strategy to obtain the redirect_uri
---
.../encoding/impl/AuthCodeTokenRequestEncoder.java | 32 +++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/AuthCodeTokenRequestEncoder.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/AuthCodeTokenRequestEncoder.java
index 71c35a30..f39e8393 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/AuthCodeTokenRequestEncoder.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/AuthCodeTokenRequestEncoder.java
@@ -15,6 +15,7 @@
package net.shibboleth.oidc.profile.encoding.impl;
import java.net.URI;
+import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -34,6 +35,8 @@ import com.nimbusds.openid.connect.sdk.AuthenticationSuccessResponse;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext;
+import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.logic.FunctionSupport;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
@@ -46,6 +49,30 @@ public class AuthCodeTokenRequestEncoder extends AbstractRequestEncoderFunction
@Nonnull
private final Logger log = LoggerFactory.getLogger(AuthCodeTokenRequestEncoder.class);
+ /**
+ * The strategy used to look up the redirect URI to use in the token request. This will typically be the same
+ * URI used in the authorization request, but may be overridden if necessary. If not set, no redirect URI will be
+ * included in the token request which may result in an error on the OpenID Provider.
+ */
+ @Nonnull private Function<ProfileRequestContext, URI> redirectUriLookupStrategy;
+
+ public AuthCodeTokenRequestEncoder() {
+ super();
+ redirectUriLookupStrategy = FunctionSupport.constant(null);
+ }
+
+ /**
+ * Set the strategy used to look up the redirect URI to use in the token request. This will typically be the same
+ * URI used in the authorization request, but may be overridden if necessary. If not set, no redirect URI will be
+ * included in the token request which may result in an error on the OpenID Provider.
+ *
+ * @param strategy The RedirectUriLookupStrategy to set.
+ */
+ public void setRedirectUriLookupStrategy(@Nonnull final Function<ProfileRequestContext, URI> strategy) {
+ redirectUriLookupStrategy = Constraint.isNotNull(strategy,
+ "RedirectUriLookupStrategy can not be null");
+ }
+
@Override
@Nullable public ClassicHttpRequest doApply(@Nonnull final ProfileRequestContext profileRequestContext,
@Nonnull final OIDCProviderMetadata providerMetadata) {
@@ -67,9 +94,12 @@ public class AuthCodeTokenRequestEncoder extends AbstractRequestEncoderFunction
// return null;
//}
+ final URI redirectUri = redirectUriLookupStrategy.apply(profileRequestContext);
+
+ // TODO finish this encoder!
// If PKCE was set in the request (is not null) use it, else set it to null
final AuthorizationGrant codeGrant =
- new AuthorizationCodeGrant(authnResponse.getAuthorizationCode(), new URI("http://redirect/")); //TODO REDIRECT_URI
+ new AuthorizationCodeGrant(authnResponse.getAuthorizationCode(),redirectUri);
// authnRequest.getCodeVerifier() != null ? new CodeVerifier(authnRequest.getCodeVerifier())
// : null);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list