Skip to content

Commit b2853a6

Browse files
committed
Add default authorizationRequestBaseUri to DefaultOAuth2AuthorizationRequestResolver
Closes spring-projectsgh-16383 Signed-off-by: DingHao <dh.hiekn@gmail.com>
1 parent d3332e1 commit b2853a6

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,18 @@ public void resolveWhenAuthorizationRequestCustomizerOverridesParameterThenQuery
568568
+ "nonce=([a-zA-Z0-9\\-\\.\\_\\~]){43}&" + "appid=client-id");
569569
}
570570

571+
@Test
572+
public void resolveWhenAuthorizationRequestNoProvideAuthorizationRequestBaseUri() {
573+
OAuth2AuthorizationRequestResolver resolver = new DefaultOAuth2AuthorizationRequestResolver(
574+
this.clientRegistrationRepository);
575+
String requestUri = this.authorizationRequestBaseUri + "/" + this.registration2.getRegistrationId();
576+
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
577+
request.setServletPath(requestUri);
578+
OAuth2AuthorizationRequest authorizationRequest = resolver.resolve(request);
579+
assertThat(authorizationRequest.getRedirectUri())
580+
.isEqualTo("http://localhost/login/oauth2/code/" + this.registration2.getRegistrationId());
581+
}
582+
571583
@Test
572584
public void resolveWhenAuthorizationRequestProvideCodeChallengeMethod() {
573585
ClientRegistration clientRegistration = this.pkceClientRegistration;

0 commit comments

Comments
 (0)