下面列出了怎么用org.springframework.boot.autoconfigure.security.oauth2.resource.UserInfoRestTemplateFactory的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
public void userInfoLoadBalancedNoRetry() throws Exception {
this.context = new SpringApplicationBuilder(ClientConfiguration.class)
.properties("spring.config.name=test", "server.port=0",
"spring.cloud.gateway.enabled=false",
"security.oauth2.resource.userInfoUri:https://nosuchservice",
"security.oauth2.resource.loadBalanced=true")
.run();
assertThat(
this.context.containsBean("loadBalancedUserInfoRestTemplateCustomizer"))
.isTrue();
assertThat(this.context
.containsBean("retryLoadBalancedUserInfoRestTemplateCustomizer"))
.isFalse();
OAuth2RestTemplate template = this.context
.getBean(UserInfoRestTemplateFactory.class).getUserInfoRestTemplate();
ClientHttpRequest request = template.getRequestFactory()
.createRequest(new URI("https://nosuchservice"), HttpMethod.GET);
expected.expectMessage("No instances available for nosuchservice");
request.execute();
}
private OAuth2ClientAuthenticationProcessingFilter oauth2SsoFilter(OAuth2SsoProperties sso) {
OAuth2RestOperations restTemplate = this.applicationContext.getBean(UserInfoRestTemplateFactory.class)
.getUserInfoRestTemplate();
ResourceServerTokenServices tokenServices = this.applicationContext.getBean(ResourceServerTokenServices.class);
OAuth2ClientAuthenticationProcessingFilter filter = new OAuth2ClientAuthenticationProcessingFilter(
sso.getLoginPath());
filter.setRestTemplate(restTemplate);
filter.setTokenServices(tokenServices);
filter.setApplicationEventPublisher(this.applicationContext);
return filter;
}
@Bean
OAuth2RestTemplate restTemplate(UserInfoRestTemplateFactory templateFactory) {
return templateFactory.getUserInfoRestTemplate();
}