Instal·leu la fàbrica de proxys de Spring Cloud Vault abans d'application.run
Feu servir el ganxo del registre bootstrap per accedir a ConfigData, que pot passar abans que existeixin els beans ordinaris de l'aplicació.
Quan Vault subministra ConfigData, la seva primera petició pot passar abans que existeixi un bean ordinari de personalització de proxy. Instal·leu en el seu lloc la fàbrica de peticions a través del registre bootstrap.
Per a una pila de Spring Framework 6.1 o 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 és el SpringApplication existent. Afegiu aquest inicialitzador abans de cridar run, conservant l'URI de Vault i la configuració d'autenticació.
ClientFactoryWrapper exposa aquesta fàbrica a la infraestructura bootstrap de Vault; no instal·la cap valor predeterminat per a tota l'aplicació per als clients HTTP no relacionats.
Feu servir el conjunt de dependències Cloud Vault/Boot compatible del projecte. Els exemples d'Apache 4 no es poden copiar a la fàbrica de peticions Apache 5 de Spring Framework 6.
Feu que l'adreça del proxy estigui disponible també abans del bootstrap. Per a un servidor Vault accessible públicament en una ruta que permeti proxys públics, trieu un candidat HTTP de la llista de proxys HTTP abans de l'inici de l'aplicació. Si només s'emmagatzema a Vault, l'aplicació no pot descobrir la ruta necessària per a aquesta primera petició a Vault.