Installera Spring Cloud Vaults proxyfabrik före application.run
Använd bootstrap-registrets krok för ConfigData-åtkomst, som kan inträffa innan vanliga applikationsbönor finns.
När Vault levererar ConfigData kan dess första begäran inträffa innan en vanlig proxyanpassningsböna finns. Installera i stället begärandefabriken genom bootstrap-registret.
För en Spring Framework 6.1-eller-senare-stack:
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 är den befintliga SpringApplication. Lägg till denna initialiserare innan du anropar run, och behåll Vault-URI:n och autentiseringsinställningarna.
ClientFactoryWrapper exponerar denna fabrik för Vaults bootstrap-infrastruktur; den installerar inte en applikationsomfattande standard för orelaterade HTTP-klienter.
Använd projektets kompatibla Cloud Vault/Boot-beroendepaket. Apache 4-exempel kan inte kopieras in i Spring Framework 6:s Apache 5-begärandefabrik.
Gör proxyadressen tillgänglig före bootstrap också. För en offentligt nåbar Vault-server på en rutt som tillåter offentliga proxys, välj en HTTP-kandidat från HTTP-proxylistan innan applikationen startar. Om den bara lagras i Vault kan applikationen inte upptäcka den rutt som behövs för den första Vault-begäran.