|
48 | 48 | import org.springframework.security.oauth2.jwt.JwtDecoder;
|
49 | 49 | import org.springframework.security.oauth2.jwt.JwtIssuerValidator;
|
50 | 50 | import org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken;
|
| 51 | +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider; |
51 | 52 | import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
|
52 | 53 | import org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector;
|
53 | 54 | import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter;
|
@@ -273,6 +274,22 @@ void autoConfigurationShouldBeConditionalOnJwtDecoderClass() {
|
273 | 274 | .run((context) -> assertThat(getBearerTokenFilter(context)).isNull());
|
274 | 275 | }
|
275 | 276 |
|
| 277 | + @Test |
| 278 | + void autoConfigurationWhenJwkSetUriAndIntrospectionUriAvailable() { |
| 279 | + this.contextRunner |
| 280 | + .withPropertyValues("spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://jwk-set-uri.com", |
| 281 | + "spring.security.oauth2.resourceserver.opaquetoken.introspection-uri=https://check-token.com", |
| 282 | + "spring.security.oauth2.resourceserver.opaquetoken.client-id=my-client-id", |
| 283 | + "spring.security.oauth2.resourceserver.opaquetoken.client-secret=my-client-secret") |
| 284 | + .run((context) -> { |
| 285 | + assertThat(context).hasSingleBean(OpaqueTokenIntrospector.class); |
| 286 | + assertThat(context).hasSingleBean(JwtDecoder.class); |
| 287 | + assertThat(getBearerTokenFilter(context)) |
| 288 | + .extracting("authenticationManagerResolver.arg$1.providers").asList() |
| 289 | + .hasAtLeastOneElementOfType(JwtAuthenticationProvider.class); |
| 290 | + }); |
| 291 | + } |
| 292 | + |
276 | 293 | @Test
|
277 | 294 | void autoConfigurationWhenIntrospectionUriAvailableShouldConfigureIntrospectionClient() {
|
278 | 295 | this.contextRunner
|
@@ -305,36 +322,6 @@ void autoConfigurationWhenIntrospectionUriAvailableShouldBeConditionalOnClass()
|
305 | 322 | .run((context) -> assertThat(context).doesNotHaveBean(OpaqueTokenIntrospector.class));
|
306 | 323 | }
|
307 | 324 |
|
308 |
| - @Test |
309 |
| - void autoConfigurationWhenBothJwkSetUriAndTokenIntrospectionUriSetShouldFail() { |
310 |
| - this.contextRunner |
311 |
| - .withPropertyValues( |
312 |
| - "spring.security.oauth2.resourceserver.opaquetoken.introspection-uri=https://check-token.com", |
313 |
| - "spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://jwk-set-uri.com") |
314 |
| - .run((context) -> assertThat(context).hasFailed().getFailure().hasMessageContaining( |
315 |
| - "Only one of jwt.jwk-set-uri and opaquetoken.introspection-uri should be configured.")); |
316 |
| - } |
317 |
| - |
318 |
| - @Test |
319 |
| - void autoConfigurationWhenBothJwtIssuerUriAndTokenIntrospectionUriSetShouldFail() { |
320 |
| - this.contextRunner |
321 |
| - .withPropertyValues( |
322 |
| - "spring.security.oauth2.resourceserver.opaquetoken.introspection-uri=https://check-token.com", |
323 |
| - "spring.security.oauth2.resourceserver.jwt.issuer-uri=https://jwk-oidc-issuer-location.com") |
324 |
| - .run((context) -> assertThat(context).hasFailed().getFailure().hasMessageContaining( |
325 |
| - "Only one of jwt.issuer-uri and opaquetoken.introspection-uri should be configured.")); |
326 |
| - } |
327 |
| - |
328 |
| - @Test |
329 |
| - void autoConfigurationWhenBothJwtKeyLocationAndTokenIntrospectionUriSetShouldFail() { |
330 |
| - this.contextRunner |
331 |
| - .withPropertyValues( |
332 |
| - "spring.security.oauth2.resourceserver.opaquetoken.introspection-uri=https://check-token.com", |
333 |
| - "spring.security.oauth2.resourceserver.jwt.public-key-location=classpath:public-key-location") |
334 |
| - .run((context) -> assertThat(context).hasFailed().getFailure().hasMessageContaining( |
335 |
| - "Only one of jwt.public-key-location and opaquetoken.introspection-uri should be configured.")); |
336 |
| - } |
337 |
| - |
338 | 325 | @SuppressWarnings("unchecked")
|
339 | 326 | @Test
|
340 | 327 | void autoConfigurationShouldConfigureResourceServerUsingJwkSetUriAndIssuerUri() throws Exception {
|
|
0 commit comments