Усталюйце проксі-фабрыку Spring Cloud Vault перад application.run
Выкарыстоўвайце хук рэестра bootstrap для доступу да ConfigData, які можа адбыцца раней, чым з'явяцца звычайныя біны праграмы.
Калі Vault падае ConfigData, яго першы запыт можа адбыцца раней, чым існуе звычайны бін наладкі проксі. Усталюйце фабрыку запытаў праз рэестр bootstrap.
Для стэка Spring Framework 6.1 або навейшага:
import java.net.InetSocketAddress;
import java.net.ProxySelector;
import java.net.http.HttpClient;
import org.springframework.http.client.JdkClientHttpRequestFactory;
import org.springframework.vault.config.AbstractVaultConfiguration
.ClientFactoryWrapper;
var http = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example.net", 8080)))
.build();
application.addBootstrapRegistryInitializer(registry ->
registry.register(ClientFactoryWrapper.class, context ->
new ClientFactoryWrapper(
new JdkClientHttpRequestFactory(http))));application — гэта існуючы SpringApplication. Дадайце гэты ініцыялізатар перад выклікам run, захаваўшы URI Vault і налады аўтэнтыфікацыі.
ClientFactoryWrapper адкрывае гэтую фабрыку для інфраструктуры bootstrap Vault; ён не ўсталёўвае агульнапраграмнае значэнне па змаўчанні для іншых HTTP-кліентаў.
Выкарыстоўвайце сумяшчальны набор залежнасцей Cloud Vault/Boot праекта. Прыклады Apache 4 нельга капіраваць у фабрыку запытаў Apache 5 у Spring Framework 6.
Зрабіце адрас проксі даступным таксама да bootstrap. Для публічна даступнага сервера Vault на маршруце, які дазваляе публічныя проксі, выберыце HTTP-кандыдата са спісу HTTP-проксі перад запускам праграмы. Калі ён захоўваецца толькі ў Vault, праграма не зможа выявіць маршрут, патрэбны для гэтага першага запыту да Vault.