Инсталирайте прокси фабриката на 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.