From 667746ddd263a29cc1b3c6c37748c2bed14e161e Mon Sep 17 00:00:00 2001 From: Justin Richer Date: Fri, 10 May 2013 12:07:16 -0700 Subject: [PATCH] redirect uri is now configurable via the client configuration object, addresses #326, #330 --- .../connect/client/OIDCAuthenticationFilter.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java b/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java index df1784080..7c3e87a88 100644 --- a/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java +++ b/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java @@ -184,8 +184,14 @@ public class OIDCAuthenticationFilter extends AbstractAuthenticationProcessingFi throw new AuthenticationServiceException("No client configuration found for issuer: " + issuer); } - // our redirect URI is this current URL, with no query parameters - String redirectUri = request.getRequestURL().toString(); + String redirectUri = null; + if (clientConfig.getRegisteredRedirectUri() != null && clientConfig.getRegisteredRedirectUri().size() == 1) { + // if there's a redirect uri configured (and only one), use that + redirectUri = clientConfig.getRegisteredRedirectUri().toArray(new String[] {})[0]; + } else { + // otherwise our redirect URI is this current URL, with no query parameters + redirectUri = request.getRequestURL().toString(); + } session.setAttribute(REDIRECT_URI_SESION_VARIABLE, redirectUri); // this value comes back in the id token and is checked there