У нас есть приложение Spring-Boot, в котором мы используем Eureka, чтобы обнаружить Spring Cloud Config и получить конфигурации. Мы интегрируем Vault для обеспечения безопасной/конфиденциальной информации и испытываем проблемы с загрузкой и разрешением параметров. Проект, который мы используем как клиент Vault, - vault-spring-boot-starter, и он отлично работает, пока мы не используем его вместе с config-сервером через eureka.bootstrap PropertySource ordering
В частности, URL доступа Eureka содержит параметры/учетные данные, которые извлекаются из хранилища. Когда все компоненты включены, запрос Eureka завершается с ошибкой, когда DiscoveryClient пытается получить доступ к URL, в котором параметры еще не были заполнены/заменены.
(Example: http://${user}:${pass}.....)
Попытка указать @Order и
@AutoConfigureBefore({EurekaClientAutoConfiguration.class, DiscoveryClientConfigServiceAutoConfiguration.class})
в VaultBootstrapConfiguration хранилище-весна-Boot-стартера, кажется, не имеют никакого влияния. Я считаю, что проблема связана с упорядочением, в котором обрабатываются PropertySources, но я не могу успешно внедрить PropertySource Vault перед Eureka's. Как мы можем указать логику пользовательского/Vault PropertySourceLocator для выполнения перед открытием DiscoveryClient и сервером конфигурации?
Update
Мы используем пружинными облако версии Angel.SR6.
Я добавил @Order (Ordered.HIGHEST_PRECEDENCE) аннотацию к VaultPropertySourceLocator, как рекомендовано, но разрешение параметр по-прежнему не работает. С включенным ведением журнала отладки Spring я считаю, что Vault PropertySource на самом деле существует, но по какой-то причине он не используется. Я изменил код, чтобы VaultConfiguration реализовал SmartLifecycle и Ordered (с порядком = 0 и фазой = Integer.MIN_VALUE), которые могут повлиять на вещи. Мне нужно будет сделать больше отладки, чтобы попытаться изолировать происходящее.
Какую версию весеннего облака вы используете? – spencergibb
Рассматривая код, вам, вероятно, понадобится '@ Order' на https://github.com/markramach/vault-spring-boot-starter/blob/master/src/main/java/com/flyover/boot/vault /config/VaultPropertySourceLocator.java – spencergibb
Другими словами, механизм поддержки PropertySourceLocator поддерживает механизм упорядочивания. – spencergibb