Mamy aplikację Spring-Boot, w której używamy Eureka do odkrycia Spring Cloud Config i odzyskania konfiguracji. Integrujemy Vault, aby wprowadzić bezpieczne/poufne informacje i mamy problemy z ładowaniem i rozdzielczością parametrów. Projekt, którego używamy jako klienta Vault, to vault-spring-boot-starter i działa wspaniale, o ile nie używamy go razem z serwerem konfiguracyjnym za pośrednictwem eureka.bootstrap PropertySource ordering
Adres URL Eureka zawiera w szczególności parametry/referencje pobierane z Vault. Po włączeniu wszystkich komponentów żądanie Eureka kończy się niepowodzeniem, gdy DiscoveryClient próbuje uzyskać dostęp do adresu URL, w którym parametry nie zostały jeszcze wypełnione/wymienione.
(Example: http://${user}:${pass}.....)
Próbując określić @Order i
@AutoConfigureBefore({EurekaClientAutoConfiguration.class, DiscoveryClientConfigServiceAutoConfiguration.class})
w skarbcu sprężynowym rozruchu rozrusznik za VaultBootstrapConfiguration wydają się nie mieć żadnego wpływu. Uważam, że problem związany jest z porządkiem, w którym przetwarzane są Źródła Zasobów, ale nie jestem w stanie skutecznie wstrzyknąć Zasobu Własności Vault przed Eureka. W jaki sposób możemy nakazać logikę Custom/Vault PropertySourceLocator wykonać przed uzyskaniem dostępu do serwera DiscoveryClient i serwera konfiguracji?
Aktualizacja
Używamy wiosna chmura wersji Angel.SR6.
Dodałem adnotację @ Ordered (Ordered.HIGHEST_PRECEDENCE) do VaultPropertySourceLocator zgodnie z zaleceniami, ale rozdzielczość parametru nadal nie działa. Po włączeniu rejestrowania debugowania wiosennego uważam, że Vault PropertySource rzeczywiście istnieje, ale z jakiegoś powodu nie jest używany. Zmodyfikowałem kod tak, aby VaultConfiguration implementował SmartLifecycle i Zamówione (z order = 0 i phase = Integer.MIN_VALUE), co mogło mieć wpływ na rzeczy. Będę musiał zrobić więcej debugowania, aby spróbować wyizolować to, co się dzieje.
Jakiej wersji wiosennej chmury używasz? – spencergibb
Patrząc na kod, prawdopodobnie potrzebujesz '@ Order' na https://github.com/markramach/vault-spring-boot-starter/blob/master/src/main/java/com/flyover/boot/vault /config/VaultPropertySourceLocator.java – spencergibb
Innymi słowy, mechanizm zamawiania sprężyn mechanizmu wsparcia właściwości PropertySourceLocator. – spencergibb