这个想法是让 spring-vault 使用 feign 客户端(利用 hystrix 的容错能力)。
- spring-vault 支持 feign 客户端吗?或者如果不支持开箱即用,是否有解决方法
- 或者是否可以通过 feign 客户端(某种代理模式)路由 spring-vault 调用。
以下代码片段是 spring-vault config 的示例;VaultTemplate bean 用于 Vault 操作
public VaultEndpoint vaultEndpoint() {
try {
return VaultEndpoint.from(new URI(vaultUri));
} catch (URISyntaxException uriSyntaxException) {
throw new IllegalStateException("Some Exception", uriSyntaxException);
}
}
@Bean
public VaultTemplate vaultTemplate() {
return new VaultTemplate(vaultEndpoint(), httpRequestFactory(), sessionManager());
}
@Bean
public VaultTransitOperations vaultTransitOperations() {
return vaultTemplate().opsForTransit(transitPath);
}
@Bean
public ClientHttpRequestFactory httpRequestFactory() {
ClientOptions clientOptions = new ClientOptions(1000, 1000);
return ClientHttpRequestFactoryFactory.create(clientOptions, SslConfiguration.NONE);
}
@Bean
public RestOperations vaultClient() {
return VaultClients.createRestTemplate(vaultEndpoint(), httpRequestFactory());
}