Skip to content

Commit e37424c

Browse files
committed
Fix cycle in DefaultOAuth2AuthorizationRequestResolver
DefaultOAuth2AuthorizationRequestResolver should not depend on OAuth2AuthorizationRequestRedirectFilter because OAuth2AuthorizationRequestRedirectFilter already depends on DefaultOAuth2AuthorizationRequestResolver. OAuth2AuthorizationRequestRedirectFilter also takes advantage of the new constructor that defaults the base uri. Polishes gh-16384
1 parent 7587048 commit e37424c

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@
6666
*/
6767
public final class DefaultOAuth2AuthorizationRequestResolver implements OAuth2AuthorizationRequestResolver {
6868

69+
/**
70+
* The default base {@code URI} used for authorization requests.
71+
*/
72+
public static final String DEFAULT_AUTHORIZATION_REQUEST_BASE_URI = "/oauth2/authorization";
73+
6974
private static final String REGISTRATION_ID_URI_VARIABLE_NAME = "registrationId";
7075

7176
private static final char PATH_DELIMITER = '/';
@@ -93,8 +98,7 @@ public final class DefaultOAuth2AuthorizationRequestResolver implements OAuth2Au
9398
* authorization requests
9499
*/
95100
public DefaultOAuth2AuthorizationRequestResolver(ClientRegistrationRepository clientRegistrationRepository) {
96-
this(clientRegistrationRepository,
97-
OAuth2AuthorizationRequestRedirectFilter.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI);
101+
this(clientRegistrationRepository, DEFAULT_AUTHORIZATION_REQUEST_BASE_URI);
98102
}
99103

100104
/**

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public class OAuth2AuthorizationRequestRedirectFilter extends OncePerRequestFilt
8787
/**
8888
* The default base {@code URI} used for authorization requests.
8989
*/
90-
public static final String DEFAULT_AUTHORIZATION_REQUEST_BASE_URI = "/oauth2/authorization";
90+
public static final String DEFAULT_AUTHORIZATION_REQUEST_BASE_URI = DefaultOAuth2AuthorizationRequestResolver.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI;
9191

9292
private final ThrowableAnalyzer throwableAnalyzer = new DefaultThrowableAnalyzer();
9393

@@ -107,7 +107,7 @@ public class OAuth2AuthorizationRequestRedirectFilter extends OncePerRequestFilt
107107
* @param clientRegistrationRepository the repository of client registrations
108108
*/
109109
public OAuth2AuthorizationRequestRedirectFilter(ClientRegistrationRepository clientRegistrationRepository) {
110-
this(clientRegistrationRepository, DEFAULT_AUTHORIZATION_REQUEST_BASE_URI);
110+
this(new DefaultOAuth2AuthorizationRequestResolver(clientRegistrationRepository));
111111
}
112112

113113
/**
@@ -119,10 +119,7 @@ public OAuth2AuthorizationRequestRedirectFilter(ClientRegistrationRepository cli
119119
*/
120120
public OAuth2AuthorizationRequestRedirectFilter(ClientRegistrationRepository clientRegistrationRepository,
121121
String authorizationRequestBaseUri) {
122-
Assert.notNull(clientRegistrationRepository, "clientRegistrationRepository cannot be null");
123-
Assert.hasText(authorizationRequestBaseUri, "authorizationRequestBaseUri cannot be empty");
124-
this.authorizationRequestResolver = new DefaultOAuth2AuthorizationRequestResolver(clientRegistrationRepository,
125-
authorizationRequestBaseUri);
122+
this(new DefaultOAuth2AuthorizationRequestResolver(clientRegistrationRepository, authorizationRequestBaseUri));
126123
}
127124

128125
/**

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@ public void setUp() {
9797
this.authorizationRequestBaseUri);
9898
}
9999

100+
@Test
101+
void authorizationRequestBaseUriEqualToRedirectFilter() {
102+
assertThat(DefaultOAuth2AuthorizationRequestResolver.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI)
103+
.isEqualTo(OAuth2AuthorizationRequestRedirectFilter.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI);
104+
}
105+
100106
@Test
101107
public void constructorWhenClientRegistrationRepositoryIsNullThenThrowIllegalArgumentException() {
102108
assertThatIllegalArgumentException()

0 commit comments

Comments
 (0)