|
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