Конфигурация Spring Cloud Vault без файла YAML - PullRequest
0 голосов
/ 30 августа 2018

Я упомянул конфигурацию Spring Cloud Vault в моем bootstrap.yml файле

spring:
  cloud:
    vault:
      authentication: APPROLE
      app-role:
        role-id: *****
        secret-id: ****
      host: ****
      port: 80
      scheme: http

Но я не хочу, чтобы они были в моем YML-файле, скорее, я бы хотел, чтобы они были сконфигурированы как бин

@ configuration / @ bean

Пожалуйста, помогите. Спасибо

1 Ответ

0 голосов
/ 31 августа 2018

Я смог сделать это успешно, настроив Bean типа VaultProperties. Ниже приведен фрагмент кода, который полностью исключил необходимость его сохранения в 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
...