Skip to content

Commit 9767d1e

Browse files
topiamjgrandja
topiam
authored andcommitted
Fix redirect_uri resolver
Closes gh-1012
1 parent 70fade4 commit 9767d1e

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ private static void throwError(OAuth2Error error, String parameterName,
333333
OAuth2AuthorizationCodeRequestAuthenticationToken authorizationCodeRequestAuthentication,
334334
RegisteredClient registeredClient, OAuth2AuthorizationRequest authorizationRequest) {
335335

336-
String redirectUri = resolveRedirectUri(authorizationRequest, registeredClient);
336+
String redirectUri = resolveRedirectUri(authorizationCodeRequestAuthentication, authorizationRequest, registeredClient);
337337
if (error.getErrorCode().equals(OAuth2ErrorCodes.INVALID_REQUEST) &&
338338
(parameterName.equals(OAuth2ParameterNames.CLIENT_ID) ||
339339
parameterName.equals(OAuth2ParameterNames.STATE))) {
@@ -350,7 +350,11 @@ private static void throwError(OAuth2Error error, String parameterName,
350350
throw new OAuth2AuthorizationCodeRequestAuthenticationException(error, authorizationCodeRequestAuthenticationResult);
351351
}
352352

353-
private static String resolveRedirectUri(OAuth2AuthorizationRequest authorizationRequest, RegisteredClient registeredClient) {
353+
private static String resolveRedirectUri(OAuth2AuthorizationCodeRequestAuthenticationToken authorizationCodeRequestAuthentication,
354+
OAuth2AuthorizationRequest authorizationRequest, RegisteredClient registeredClient) {
355+
if (authorizationCodeRequestAuthentication!=null && StringUtils.hasText(authorizationCodeRequestAuthentication.getRedirectUri())){
356+
return authorizationCodeRequestAuthentication.getRedirectUri();
357+
}
354358
if (authorizationRequest != null && StringUtils.hasText(authorizationRequest.getRedirectUri())) {
355359
return authorizationRequest.getRedirectUri();
356360
}

0 commit comments

Comments
 (0)