Skip to content

Commit 7587048

Browse files
kse-musicrwinch
authored andcommitted
Add default authorizationRequestBaseUri to DefaultOAuth2AuthorizationRequestResolver
Closes gh-16383 Signed-off-by: DingHao <[email protected]>
1 parent 7de4217 commit 7587048

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
@@ -86,6 +86,17 @@ public final class DefaultOAuth2AuthorizationRequestResolver implements OAuth2Au
8686
private Consumer<OAuth2AuthorizationRequest.Builder> authorizationRequestCustomizer = (customizer) -> {
8787
};
8888

89+
/**
90+
* Constructs a {@code DefaultOAuth2AuthorizationRequestResolver} using the provided
91+
* parameters.
92+
* @param clientRegistrationRepository the repository of client registrations
93+
* authorization requests
94+
*/
95+
public DefaultOAuth2AuthorizationRequestResolver(ClientRegistrationRepository clientRegistrationRepository) {
96+
this(clientRegistrationRepository,
97+
OAuth2AuthorizationRequestRedirectFilter.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI);
98+
}
99+
89100
/**
90101
* Constructs a {@code DefaultOAuth2AuthorizationRequestResolver} using the provided
91102
* 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)