32
32
import org .springframework .security .oauth2 .core .endpoint .OAuth2AuthorizationResponseType ;
33
33
import org .springframework .security .oauth2 .core .oidc .OidcScopes ;
34
34
import org .springframework .security .oauth2 .jose .jws .SignatureAlgorithm ;
35
+ import org .springframework .security .oauth2 .server .authorization .context .AuthorizationServerContext ;
35
36
import org .springframework .security .oauth2 .server .authorization .context .AuthorizationServerContextHolder ;
36
37
import org .springframework .security .oauth2 .server .authorization .oidc .OidcProviderConfiguration ;
37
38
import org .springframework .security .oauth2 .server .authorization .oidc .http .converter .OidcProviderConfigurationHttpMessageConverter ;
38
39
import org .springframework .security .oauth2 .server .authorization .settings .AuthorizationServerSettings ;
39
40
import org .springframework .security .web .util .matcher .AntPathRequestMatcher ;
40
41
import org .springframework .security .web .util .matcher .RequestMatcher ;
41
- import org .springframework .util .Assert ;
42
42
import org .springframework .web .filter .OncePerRequestFilter ;
43
43
import org .springframework .web .util .UriComponentsBuilder ;
44
44
@@ -57,20 +57,12 @@ public final class OidcProviderConfigurationEndpointFilter extends OncePerReques
57
57
*/
58
58
private static final String DEFAULT_OIDC_PROVIDER_CONFIGURATION_ENDPOINT_URI = "/.well-known/openid-configuration" ;
59
59
60
- private final AuthorizationServerSettings authorizationServerSettings ;
61
- private final RequestMatcher requestMatcher ;
60
+ private final RequestMatcher requestMatcher = new AntPathRequestMatcher (
61
+ DEFAULT_OIDC_PROVIDER_CONFIGURATION_ENDPOINT_URI ,
62
+ HttpMethod .GET .name ());
62
63
private final OidcProviderConfigurationHttpMessageConverter providerConfigurationHttpMessageConverter =
63
64
new OidcProviderConfigurationHttpMessageConverter ();
64
65
65
- public OidcProviderConfigurationEndpointFilter (AuthorizationServerSettings authorizationServerSettings ) {
66
- Assert .notNull (authorizationServerSettings , "authorizationServerSettings cannot be null" );
67
- this .authorizationServerSettings = authorizationServerSettings ;
68
- this .requestMatcher = new AntPathRequestMatcher (
69
- DEFAULT_OIDC_PROVIDER_CONFIGURATION_ENDPOINT_URI ,
70
- HttpMethod .GET .name ()
71
- );
72
- }
73
-
74
66
@ Override
75
67
protected void doFilterInternal (HttpServletRequest request , HttpServletResponse response , FilterChain filterChain )
76
68
throws ServletException , IOException {
@@ -80,22 +72,24 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
80
72
return ;
81
73
}
82
74
83
- String issuer = AuthorizationServerContextHolder .getContext ().getIssuer ();
75
+ AuthorizationServerContext authorizationServerContext = AuthorizationServerContextHolder .getContext ();
76
+ String issuer = authorizationServerContext .getIssuer ();
77
+ AuthorizationServerSettings authorizationServerSettings = authorizationServerContext .getAuthorizationServerSettings ();
84
78
85
79
OidcProviderConfiguration providerConfiguration = OidcProviderConfiguration .builder ()
86
80
.issuer (issuer )
87
- .authorizationEndpoint (asUrl (issuer , this . authorizationServerSettings .getAuthorizationEndpoint ()))
88
- .tokenEndpoint (asUrl (issuer , this . authorizationServerSettings .getTokenEndpoint ()))
81
+ .authorizationEndpoint (asUrl (issuer , authorizationServerSettings .getAuthorizationEndpoint ()))
82
+ .tokenEndpoint (asUrl (issuer , authorizationServerSettings .getTokenEndpoint ()))
89
83
.tokenEndpointAuthenticationMethods (clientAuthenticationMethods ())
90
- .jwkSetUrl (asUrl (issuer , this . authorizationServerSettings .getJwkSetEndpoint ()))
91
- .userInfoEndpoint (asUrl (issuer , this . authorizationServerSettings .getOidcUserInfoEndpoint ()))
84
+ .jwkSetUrl (asUrl (issuer , authorizationServerSettings .getJwkSetEndpoint ()))
85
+ .userInfoEndpoint (asUrl (issuer , authorizationServerSettings .getOidcUserInfoEndpoint ()))
92
86
.responseType (OAuth2AuthorizationResponseType .CODE .getValue ())
93
87
.grantType (AuthorizationGrantType .AUTHORIZATION_CODE .getValue ())
94
88
.grantType (AuthorizationGrantType .CLIENT_CREDENTIALS .getValue ())
95
89
.grantType (AuthorizationGrantType .REFRESH_TOKEN .getValue ())
96
- .tokenRevocationEndpoint (asUrl (issuer , this . authorizationServerSettings .getTokenRevocationEndpoint ()))
90
+ .tokenRevocationEndpoint (asUrl (issuer , authorizationServerSettings .getTokenRevocationEndpoint ()))
97
91
.tokenRevocationEndpointAuthenticationMethods (clientAuthenticationMethods ())
98
- .tokenIntrospectionEndpoint (asUrl (issuer , this . authorizationServerSettings .getTokenIntrospectionEndpoint ()))
92
+ .tokenIntrospectionEndpoint (asUrl (issuer , authorizationServerSettings .getTokenIntrospectionEndpoint ()))
99
93
.tokenIntrospectionEndpointAuthenticationMethods (clientAuthenticationMethods ())
100
94
.subjectType ("public" )
101
95
.idTokenSigningAlgorithm (SignatureAlgorithm .RS256 .getName ())
@@ -119,4 +113,5 @@ private static Consumer<List<String>> clientAuthenticationMethods() {
119
113
private static String asUrl (String issuer , String endpoint ) {
120
114
return UriComponentsBuilder .fromUriString (issuer ).path (endpoint ).build ().toUriString ();
121
115
}
116
+
122
117
}
0 commit comments