Instale a fábrica de proxies de Spring Cloud Vault antes de application.run
Use o gancho do rexistro bootstrap para o acceso a ConfigData, que pode ocorrer antes de que existan os beans ordinarios da aplicación.
Cando Vault subministra ConfigData, a súa primeira solicitude pode ocorrer antes de que exista un bean ordinario de personalización de proxy. Instale no seu lugar a fábrica de solicitudes a través do rexistro bootstrap.
Para unha pila de Spring Framework 6.1 ou posterior:
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 é o SpringApplication existente. Engada este inicializador antes de chamar a run, conservando o URI de Vault e a configuración de autenticación.
ClientFactoryWrapper expón esta fábrica á infraestrutura bootstrap de Vault; non instala un valor predeterminado para toda a aplicación en clientes HTTP non relacionados.
Use o conxunto de dependencias Cloud Vault/Boot compatible do proxecto. Os exemplos de Apache 4 non se poden copiar na fábrica de solicitudes Apache 5 de Spring Framework 6.
Faga que o enderezo do proxy estea dispoñible tamén antes do bootstrap. Para un servidor Vault accesible publicamente nunha ruta que permita proxies públicos, escolla un candidato HTTP de a lista de proxies HTTP antes do inicio da aplicación. Se só se almacena en Vault, a aplicación non pode descubrir a ruta necesaria para esa primeira solicitude a Vault.