|
54 | 54 | import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails;
|
55 | 55 | import org.springframework.security.oauth2.provider.token.DefaultTokenServices;
|
56 | 56 | import org.springframework.security.oauth2.provider.token.RemoteTokenServices;
|
| 57 | +import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter; |
57 | 58 | import org.springframework.social.connect.ConnectionFactoryLocator;
|
58 | 59 | import org.springframework.stereotype.Component;
|
59 | 60 | import org.springframework.web.client.RestTemplate;
|
60 | 61 |
|
61 | 62 | import static org.assertj.core.api.Assertions.assertThat;
|
| 63 | +import static org.mockito.Matchers.any; |
62 | 64 | import static org.mockito.Mockito.mock;
|
| 65 | +import static org.mockito.Mockito.verify; |
63 | 66 |
|
64 | 67 | /**
|
65 | 68 | * Tests for {@link ResourceServerTokenServicesConfiguration}.
|
@@ -243,20 +246,24 @@ public void customUserInfoRestTemplateFactory() {
|
243 | 246 | }
|
244 | 247 |
|
245 | 248 | @Test
|
246 |
| - public void customRestTemplate() { |
| 249 | + public void jwtAccessTokenConverterIsConfiguredWhenKeyUriIsProvided() { |
247 | 250 | EnvironmentTestUtils.addEnvironment(this.environment,
|
248 |
| - "security.oauth2.resource.userInfoUri:http://example.com", |
249 |
| - "security.oauth2.resource.tokenInfoUri:http://example.com", |
250 |
| - "security.oauth2.resource.preferTokenInfo:false"); |
| 251 | + "security.oauth2.resource.jwt.key-uri=http://localhost:12345/banana"); |
| 252 | + this.context = new SpringApplicationBuilder(ResourceConfiguration.class) |
| 253 | + .environment(this.environment).web(false).run(); |
| 254 | + assertThat(this.context.getBeansOfType(JwtAccessTokenConverter.class)).hasSize(1); |
| 255 | + } |
| 256 | + |
| 257 | + @Test |
| 258 | + public void jwtAccessTokenConverterRestTemplateCanBeCustomized() { |
| 259 | + EnvironmentTestUtils.addEnvironment(this.environment, |
| 260 | + "security.oauth2.resource.jwt.key-uri=http://localhost:12345/banana"); |
251 | 261 | this.context = new SpringApplicationBuilder(ResourceConfiguration.class,
|
252 |
| - RestTemplateCustomizer.class).environment(this.environment).web(false) |
253 |
| - .run(); |
254 |
| - String[] restTemplateCustomizers = this.context |
255 |
| - .getBeanNamesForType(JwtAccessTokenConverterRestTemplateCustomizer.class); |
256 |
| - UserInfoTokenServices services = this.context |
257 |
| - .getBean(UserInfoTokenServices.class); |
258 |
| - assertThat(restTemplateCustomizers).hasSize(1); |
259 |
| - assertThat(services).isNotNull(); |
| 262 | + JwtAccessTokenConverterRestTemplateCustomizerConfiguration.class) |
| 263 | + .environment(this.environment).web(false).run(); |
| 264 | + JwtAccessTokenConverterRestTemplateCustomizer customizer = this.context |
| 265 | + .getBean(JwtAccessTokenConverterRestTemplateCustomizer.class); |
| 266 | + verify(customizer).customize(any(RestTemplate.class)); |
260 | 267 | }
|
261 | 268 |
|
262 | 269 | @Configuration
|
@@ -373,22 +380,14 @@ public OAuth2RestTemplate getUserInfoRestTemplate() {
|
373 | 380 |
|
374 | 381 | }
|
375 | 382 |
|
376 |
| - @Component |
377 |
| - protected static class RestTemplateCustomizer |
378 |
| - implements JwtAccessTokenConverterRestTemplateCustomizer { |
379 |
| - |
380 |
| - @Override |
381 |
| - public void customize(RestTemplate template) { |
382 |
| - template.getInterceptors().add(new ClientHttpRequestInterceptor() { |
383 |
| - |
384 |
| - @Override |
385 |
| - public ClientHttpResponse intercept(HttpRequest request, byte[] body, |
386 |
| - ClientHttpRequestExecution execution) throws IOException { |
387 |
| - return execution.execute(request, body); |
388 |
| - } |
| 383 | + @Configuration |
| 384 | + static class JwtAccessTokenConverterRestTemplateCustomizerConfiguration { |
389 | 385 |
|
390 |
| - }); |
| 386 | + @Bean |
| 387 | + public JwtAccessTokenConverterRestTemplateCustomizer restTemplateCustomizer() { |
| 388 | + return mock(JwtAccessTokenConverterRestTemplateCustomizer.class); |
391 | 389 | }
|
| 390 | + |
392 | 391 | }
|
393 | 392 |
|
394 | 393 | }
|
0 commit comments