我有一个Spring Cloud配置服务器,它使用OAuth2进行保护,并使用旧式(Spring 2.4之前)bootstrap方法绑定到config服务器。为了使它使用OAuth2 RestTemplate,我实现了一个自定义的ConfigServicePropertySourceLocator
,它设置了rest模板,通过spring.factories
进行配置(我发现了一些示例,展示了如何做到这一点):
@Configuration
public class ConfigClientOAuth2BootstrapConfiguration {
@Bean
@Primary
public ConfigServicePropertySourceLocator configServicePropertySourceLocator() {
ConfigClientProperties clientProperties = configClientProperties();
ConfigServicePropertySourceLocator locator = new ConfigServicePropertySourceLocator(clientProperties);
locator.setRestTemplate(oauth2RestTemplate());
return locator;
}
[...]
}
META-INF/Spring工厂:
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.example.config.ConfigClientOAuth2BootstrapConfiguration
这样一切都很好。
但是我想使用新的Sping Boot Config Data方法通过spring.config.import=optional:configserver:
导入,而不是在2.4中引入的(取消了bootstrap.properties,以及对spring-cloud-starter-bootstrap
的需求),但是找不到任何关于如何在这种情况下设置自定义Rest Template的文档或示例。
有没有人有一个例子(或链接到文档),如何可以做到这一点?或者也许这是不可能的?
1条答案
按热度按时间igetnqfo1#
实际上,您可以通过创建一个自定义的
ConfigDataLoader
来实现这一点,该ConfigDataLoader
在ConfigServicePropertySourceLocator
上设置RestTemplate。然后创建一个配置类来配置
OAuth2RestTemplate
:最后一步,在
application.properties
文件中设置这些参数: