Как ввести секретный ключ во время выполнения через AWS - PullRequest
2 голосов
/ 29 марта 2020

Используя Spring boot, у нас есть следующее значение, которое в настоящее время существует в файле свойств.

secret.key=123456 # lets assume 12345 is a secret key

Мы используем AWS beanstalk и хотели прекратить добавлять секретные данные в коде / git и вместо этого вставьте его во время выполнения в качестве переменной среды в aws следующим образом.

enter image description here

Но как этого добиться в коде, потому что значение не существует в настоящее время, не может запустить его со следующим сообщением об ошибке:

Ошибка внедрения зависимостей с автопроводкой; вложенное исключение: java .lang.IllegalArgumentException: не удалось разрешить заполнитель 'secret.key' в значении "$ {secret.key}"

Попытка установить его в файле свойств следующим образом:

server.port=5000
#other settings
secret.data=${secret.key}

Например, пытаясь использовать секретное значение в коде следующим образом:

@RestController
public class HomeController {

    @Value("${secret.data}")
    private String secretData;
    .....
}

Пожалуйста, посоветуйте, если есть способ обойти это или лучший способ добиться этого, чтобы прекратить добавление конфиденциальные данные в коде и git. Спасибо.

1 Ответ

0 голосов
/ 29 марта 2020

Вы передаете системное свойство. Итак, аннотация, которую вы хотите, начинается systemProperties. Мол,

@Value("#{systemProperties.secret.key}")
private String secretData;
...