Как мне вытащить свои пароли из AWS Secret Manager к весне? - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу получить пароль своей базы данных из AWS Secret Manager на основе имени ключа, заданного в моих файлах свойств.Однако не похоже, что я могу читать свойства из файла application.yml, как я надеялся.В приведенном ниже коде my.project.aws-secret и my.project.region оба извлекаются как null.

Неправильно ли я ожидать, что эти свойства будут доступны для извлечения в данный момент?И это правильный подход для достижения этого, или есть более простой способ?

Вот код.В настоящее время я пытаюсь сделать это с помощью ApplicationListener, но я видел ту же проблему, что и EnvironmentPostProcessor: 1011 *

ApplicationListener

public class DatasourceAwsProperties implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {

    @Override
    public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
        ConfigurableEnvironment environment = event.getEnvironment();
        Properties props = new Properties();

        String datasourcePassword = environment.getProperty("my.project.aws-secret"); // why is this null?
        String awsRegion = environment.getProperty("my.project.region"); // why is this null?

        String secret = getSecret(datasourcePassword, awsRegion);

        MapPropertySource newProperties = new MapPropertySource("newProperties", ImmutableMap.of("spring.datasource.password", secret));

        environment.getPropertySources().addLast(newProperties);
    }

    public static String getSecret(String secretName, String region) {
        // gets secret from aws
}

application.yml

lots:
  of:
    properties: ...

my:
  project:
    aws-secret: the-name-of-the-secret-in-aws
    region: us-east-1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...