Skip to content

Commit 1f165f4

Browse files
committed
Add default authorizationRequestBaseUri to DefaultOAuth2AuthorizationRequestResolver
Closes gh-16383 Signed-off-by: DingHao <[email protected]>
1 parent 0e3cfd1 commit 1f165f4

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/DefaultOAuth2AuthorizationRequestResolver.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -85,6 +85,17 @@ public final class DefaultOAuth2AuthorizationRequestResolver implements OAuth2Au
8585
private Consumer<OAuth2AuthorizationRequest.Builder> authorizationRequestCustomizer = (customizer) -> {
8686
};
8787

88+
/**
89+
* Constructs a {@code DefaultOAuth2AuthorizationRequestResolver} using the provided
90+
* parameters.
91+
* @param clientRegistrationRepository the repository of client registrations
92+
* authorization requests
93+
*/
94+
public DefaultOAuth2AuthorizationRequestResolver(ClientRegistrationRepository clientRegistrationRepository) {
95+
this(clientRegistrationRepository,
96+
OAuth2AuthorizationRequestRedirectFilter.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI);
97+
}
98+
8899
/**
89100
* Constructs a {@code DefaultOAuth2AuthorizationRequestResolver} using the provided
90101
* parameters.

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/DefaultOAuth2AuthorizationRequestResolverTests.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -563,6 +563,19 @@ public void resolveWhenAuthorizationRequestCustomizerOverridesParameterThenQuery
563563
+ "nonce=([a-zA-Z0-9\\-\\.\\_\\~]){43}&" + "appid=client-id");
564564
}
565565

566+
@Test
567+
public void resolveWhenAuthorizationRequestNoProvideAuthorizationRequestBaseUri() {
568+
OAuth2AuthorizationRequestResolver resolver = new DefaultOAuth2AuthorizationRequestResolver(
569+
this.clientRegistrationRepository);
570+
ClientRegistration clientRegistration = this.registration2;
571+
String requestUri = this.authorizationRequestBaseUri + "/" + clientRegistration.getRegistrationId();
572+
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
573+
request.setServletPath(requestUri);
574+
OAuth2AuthorizationRequest authorizationRequest = resolver.resolve(request);
575+
assertThat(authorizationRequest.getRedirectUri())
576+
.isEqualTo("http://localhost/login/oauth2/code/" + clientRegistration.getRegistrationId());
577+
}
578+
566579
private static ClientRegistration.Builder fineRedirectUriTemplateClientRegistration() {
567580
// @formatter:off
568581
return ClientRegistration.withRegistrationId("fine-redirect-uri-template-client-registration")

0 commit comments

Comments
 (0)