Installeer de proxy-factory van Spring Cloud Vault vóór application.run
Gebruik de bootstrap-registerhook voor ConfigData-toegang, die kan plaatsvinden voordat gewone applicatie-beans bestaan.
Wanneer Vault ConfigData levert, kan het eerste verzoek plaatsvinden voordat een gewone proxy-aanpasser-bean bestaat. Installeer in plaats daarvan de verzoekfactory via het bootstrap-register.
Voor een Spring Framework 6.1-of-nieuwere-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 is de bestaande SpringApplication. Voeg deze initializer toe voordat je run aanroept, en behoud de Vault-URI en de authenticatie-instellingen.
ClientFactoryWrapper stelt deze factory beschikbaar aan de bootstrap-infrastructuur van Vault; het installeert geen applicatiebrede standaard voor niet-gerelateerde HTTP-clients.
Gebruik de compatibele Cloud Vault/Boot-afhankelijkheidsset van het project. Apache 4-voorbeelden kunnen niet worden gekopieerd naar de Apache 5-verzoekfactory van Spring Framework 6.
Maak het proxyadres ook vóór de bootstrap beschikbaar. Kies voor een publiek bereikbare Vault-server op een route die publieke proxy's toestaat een HTTP-kandidaat uit de lijst met HTTP-proxy's voordat de applicatie start. Als het alleen in Vault is opgeslagen, kan de applicatie de route die nodig is voor dat eerste Vault-verzoek niet ontdekken.