Skip to content

Commit 1ff4c85

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

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

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

+11
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

+13
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,19 @@ 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+
ClientRegistration clientRegistration = this.registration2;
576+
String requestUri = this.authorizationRequestBaseUri + "/" + clientRegistration.getRegistrationId();
577+
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
578+
request.setServletPath(requestUri);
579+
OAuth2AuthorizationRequest authorizationRequest = resolver.resolve(request);
580+
assertThat(authorizationRequest.getRedirectUri())
581+
.isEqualTo("http://localhost/login/oauth2/code/" + clientRegistration.getRegistrationId());
582+
}
583+
571584
@Test
572585
public void resolveWhenAuthorizationRequestProvideCodeChallengeMethod() {
573586
ClientRegistration clientRegistration = this.pkceClientRegistration;

0 commit comments

Comments
 (0)