Конфигурация Spring Cloud Vault без файла YAML

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

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

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

@configuration / @bean

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


person Arun    schedule 30.08.2018    source источник


Ответы (1)


Я смог сделать это успешно, настроив 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
person Arun    schedule 31.08.2018