Skip to content

Commit afb2ab5

Browse files
committed
Remove constructor in OAuth2AuthorizationServerMetadataEndpointFilter
Closes spring-projectsgh-868
1 parent 1ba9cc3 commit afb2ab5

File tree

3 files changed

+25
-34
lines changed

3 files changed

+25
-34
lines changed

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/config/annotation/web/configurers/OAuth2AuthorizationServerConfigurer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ public void configure(HttpSecurity httpSecurity) {
255255
}
256256

257257
OAuth2AuthorizationServerMetadataEndpointFilter authorizationServerMetadataEndpointFilter =
258-
new OAuth2AuthorizationServerMetadataEndpointFilter(authorizationServerSettings);
258+
new OAuth2AuthorizationServerMetadataEndpointFilter();
259259
httpSecurity.addFilterBefore(postProcess(authorizationServerMetadataEndpointFilter), AbstractPreAuthenticatedProcessingFilter.class);
260260
}
261261

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/OAuth2AuthorizationServerMetadataEndpointFilter.java

+12-18
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@
3131
import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
3232
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponseType;
3333
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationServerMetadata;
34+
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
3435
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
3536
import org.springframework.security.oauth2.server.authorization.http.converter.OAuth2AuthorizationServerMetadataHttpMessageConverter;
3637
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
3738
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
3839
import org.springframework.security.web.util.matcher.RequestMatcher;
39-
import org.springframework.util.Assert;
4040
import org.springframework.web.filter.OncePerRequestFilter;
4141
import org.springframework.web.util.UriComponentsBuilder;
4242

@@ -55,20 +55,12 @@ public final class OAuth2AuthorizationServerMetadataEndpointFilter extends OnceP
5555
*/
5656
private static final String DEFAULT_OAUTH2_AUTHORIZATION_SERVER_METADATA_ENDPOINT_URI = "/.well-known/oauth-authorization-server";
5757

58-
private final AuthorizationServerSettings authorizationServerSettings;
59-
private final RequestMatcher requestMatcher;
58+
private final RequestMatcher requestMatcher = new AntPathRequestMatcher(
59+
DEFAULT_OAUTH2_AUTHORIZATION_SERVER_METADATA_ENDPOINT_URI,
60+
HttpMethod.GET.name());
6061
private final OAuth2AuthorizationServerMetadataHttpMessageConverter authorizationServerMetadataHttpMessageConverter =
6162
new OAuth2AuthorizationServerMetadataHttpMessageConverter();
6263

63-
public OAuth2AuthorizationServerMetadataEndpointFilter(AuthorizationServerSettings authorizationServerSettings) {
64-
Assert.notNull(authorizationServerSettings, "authorizationServerSettings cannot be null");
65-
this.authorizationServerSettings = authorizationServerSettings;
66-
this.requestMatcher = new AntPathRequestMatcher(
67-
DEFAULT_OAUTH2_AUTHORIZATION_SERVER_METADATA_ENDPOINT_URI,
68-
HttpMethod.GET.name()
69-
);
70-
}
71-
7264
@Override
7365
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
7466
throws ServletException, IOException {
@@ -78,21 +70,23 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
7870
return;
7971
}
8072

81-
String issuer = AuthorizationServerContextHolder.getContext().getIssuer();
73+
AuthorizationServerContext authorizationServerContext = AuthorizationServerContextHolder.getContext();
74+
String issuer = authorizationServerContext.getIssuer();
75+
AuthorizationServerSettings authorizationServerSettings = authorizationServerContext.getAuthorizationServerSettings();
8276

8377
OAuth2AuthorizationServerMetadata authorizationServerMetadata = OAuth2AuthorizationServerMetadata.builder()
8478
.issuer(issuer)
85-
.authorizationEndpoint(asUrl(issuer, this.authorizationServerSettings.getAuthorizationEndpoint()))
86-
.tokenEndpoint(asUrl(issuer, this.authorizationServerSettings.getTokenEndpoint()))
79+
.authorizationEndpoint(asUrl(issuer, authorizationServerSettings.getAuthorizationEndpoint()))
80+
.tokenEndpoint(asUrl(issuer, authorizationServerSettings.getTokenEndpoint()))
8781
.tokenEndpointAuthenticationMethods(clientAuthenticationMethods())
88-
.jwkSetUrl(asUrl(issuer, this.authorizationServerSettings.getJwkSetEndpoint()))
82+
.jwkSetUrl(asUrl(issuer, authorizationServerSettings.getJwkSetEndpoint()))
8983
.responseType(OAuth2AuthorizationResponseType.CODE.getValue())
9084
.grantType(AuthorizationGrantType.AUTHORIZATION_CODE.getValue())
9185
.grantType(AuthorizationGrantType.CLIENT_CREDENTIALS.getValue())
9286
.grantType(AuthorizationGrantType.REFRESH_TOKEN.getValue())
93-
.tokenRevocationEndpoint(asUrl(issuer, this.authorizationServerSettings.getTokenRevocationEndpoint()))
87+
.tokenRevocationEndpoint(asUrl(issuer, authorizationServerSettings.getTokenRevocationEndpoint()))
9488
.tokenRevocationEndpointAuthenticationMethods(clientAuthenticationMethods())
95-
.tokenIntrospectionEndpoint(asUrl(issuer, this.authorizationServerSettings.getTokenIntrospectionEndpoint()))
89+
.tokenIntrospectionEndpoint(asUrl(issuer, authorizationServerSettings.getTokenIntrospectionEndpoint()))
9690
.tokenIntrospectionEndpointAuthenticationMethods(clientAuthenticationMethods())
9791
.codeChallengeMethod("S256")
9892
.build();

oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2AuthorizationServerMetadataEndpointFilterTests.java

+12-15
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,13 @@ public void cleanup() {
4949
AuthorizationServerContextHolder.resetContext();
5050
}
5151

52-
@Test
53-
public void constructorWhenAuthorizationServerSettingsNullThenThrowIllegalArgumentException() {
54-
assertThatIllegalArgumentException()
55-
.isThrownBy(() -> new OAuth2AuthorizationServerMetadataEndpointFilter(null))
56-
.withMessage("authorizationServerSettings cannot be null");
57-
}
58-
5952
@Test
6053
public void doFilterWhenNotAuthorizationServerMetadataRequestThenNotProcessed() throws Exception {
61-
OAuth2AuthorizationServerMetadataEndpointFilter filter =
62-
new OAuth2AuthorizationServerMetadataEndpointFilter(AuthorizationServerSettings.builder().issuer("https://example.com").build());
54+
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder()
55+
.issuer("https://example.com")
56+
.build();
57+
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
58+
OAuth2AuthorizationServerMetadataEndpointFilter filter = new OAuth2AuthorizationServerMetadataEndpointFilter();
6359

6460
String requestUri = "/path";
6561
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
@@ -74,8 +70,11 @@ public void doFilterWhenNotAuthorizationServerMetadataRequestThenNotProcessed()
7470

7571
@Test
7672
public void doFilterWhenAuthorizationServerMetadataRequestPostThenNotProcessed() throws Exception {
77-
OAuth2AuthorizationServerMetadataEndpointFilter filter =
78-
new OAuth2AuthorizationServerMetadataEndpointFilter(AuthorizationServerSettings.builder().issuer("https://example.com").build());
73+
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder()
74+
.issuer("https://example.com")
75+
.build();
76+
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
77+
OAuth2AuthorizationServerMetadataEndpointFilter filter = new OAuth2AuthorizationServerMetadataEndpointFilter();
7978

8079
String requestUri = DEFAULT_OAUTH2_AUTHORIZATION_SERVER_METADATA_ENDPOINT_URI;
8180
MockHttpServletRequest request = new MockHttpServletRequest("POST", requestUri);
@@ -106,8 +105,7 @@ public void doFilterWhenAuthorizationServerMetadataRequestThenMetadataResponse()
106105
.tokenIntrospectionEndpoint(tokenIntrospectionEndpoint)
107106
.build();
108107
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
109-
OAuth2AuthorizationServerMetadataEndpointFilter filter =
110-
new OAuth2AuthorizationServerMetadataEndpointFilter(authorizationServerSettings);
108+
OAuth2AuthorizationServerMetadataEndpointFilter filter = new OAuth2AuthorizationServerMetadataEndpointFilter();
111109

112110
String requestUri = DEFAULT_OAUTH2_AUTHORIZATION_SERVER_METADATA_ENDPOINT_URI;
113111
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
@@ -141,8 +139,7 @@ public void doFilterWhenAuthorizationServerSettingsWithInvalidIssuerThenThrowIll
141139
.issuer("https://this is an invalid URL")
142140
.build();
143141
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
144-
OAuth2AuthorizationServerMetadataEndpointFilter filter =
145-
new OAuth2AuthorizationServerMetadataEndpointFilter(authorizationServerSettings);
142+
OAuth2AuthorizationServerMetadataEndpointFilter filter = new OAuth2AuthorizationServerMetadataEndpointFilter();
146143

147144
String requestUri = DEFAULT_OAUTH2_AUTHORIZATION_SERVER_METADATA_ENDPOINT_URI;
148145
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);

0 commit comments

Comments
 (0)