Мы используем Jasypt для шифрования некоторых свойств конфигурации (паролей базы данных), но поскольку ключ дешифрования хранится в каждой файловой системе среды, мы должны выполнить некоторую ручную конфигурацию @Bean
, чтобы загрузить пароль из файла, а затем наложить свойства загрузки с EncryptablePropertiesPropertySource
.
Поскольку это так вручную, нам пришлось запустить этот код в @PostConstruct
класса WebApplicationConfig
и (хотя этого еще не произошло), он рискует загрузить их после того, как источник данных bean сконфигурирован с вызовами Environment
- предоставления исключения нулевого указателя. @Lazy
Загрузка будет вариантом, но, очевидно, это означает, что мы будем работать с хрупкой конфигурацией, которую мы бы хотели избежать.
В конечном итоге мы хотим иметь возможность использовать classpath:application.properties
по умолчанию, поэтому не хотим влиять на существующую (по умолчанию) настройку, но мы хотим иметь возможность использования источника шифруемого свойства в качестве полной замены Spring one и Spring загрузить код дешифрования из файла, прежде чем что-либо еще произойдет. Есть ли способ упростить интеграцию загрузки зашифрованных свойств ранее при запуске и настройке приложения?