【问题标题】:Spring Cloud Vault Configuration without YAML file没有 YAML 文件的 Spring Cloud Vault 配置
【发布时间】:2018-08-30 11:53:51
【问题描述】:
我在bootstrap.ymlfile 中提到了 Spring Cloud Vault 配置
spring:
cloud:
vault:
authentication: APPROLE
app-role:
role-id: *****
secret-id: ****
host: ****
port: 80
scheme: http
但我不想在我的 YML 文件中包含这些,而是希望将它们配置为 bean
@configuration / @bean
请帮忙。谢谢
【问题讨论】:
标签:
spring
spring-boot
spring-cloud
spring-cloud-vault-config
【解决方案1】:
通过配置Bean 类型为VaultProperties,我能够成功地做到这一点。下面是代码 sn-p 完全消除了在bootstrap.yml 中维护相同的需要
@Configuration
public class VaultConfiguration {
@Bean
public VaultProperties vaultProperties() {
VaultProperties vaultProperties = new VaultProperties();
vaultProperties.setAuthentication(VaultProperties.AuthenticationMethod.APPROLE);
VaultProperties.AppRoleProperties appRoleProperties = new VaultProperties.AppRoleProperties();
appRoleProperties.setRoleId("****");
appRoleProperties.setSecretId("****");
vaultProperties.setAppRole(appRoleProperties);
vaultProperties.setHost("***");
vaultProperties.setPort(80);
vaultProperties.setScheme("http");
return vaultProperties;
}
}
注意:当您的配置应被视为引导配置时,您需要在src/main/resources/META-INF/spring.factories 下提及类名
spring.factories中的内容是
org.springframework.cloud.bootstrap.BootstrapConfiguration=com.arun.local.cloudconfig.VaultConfiguration