Instalați fabrica de proxy din Spring Cloud Vault înainte de application.run
Folosiți cârligul registrului bootstrap pentru accesul la ConfigData, care poate avea loc înainte să existe bean-urile obișnuite ale aplicației.
Când Vault furnizează ConfigData, prima sa cerere poate avea loc înainte să existe un bean obișnuit de personalizare a proxy-ului. Instalați în schimb fabrica de cereri prin registrul bootstrap.
Pentru un stack Spring Framework 6.1 sau mai nou:
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 este SpringApplication existent. Adăugați acest inițializator înainte de a apela run, păstrând URI-ul Vault și setările de autentificare.
ClientFactoryWrapper expune această fabrică infrastructurii bootstrap a Vault; nu instalează o valoare implicită la nivelul aplicației pentru clienții HTTP fără legătură.
Folosiți setul compatibil de dependențe Cloud Vault/Boot al proiectului. Exemplele Apache 4 nu pot fi copiate în fabrica de cereri Apache 5 a Spring Framework 6.
Faceți adresa proxy-ului disponibilă și înainte de bootstrap. Pentru un server Vault accesibil public pe o rută care permite proxy-uri publice, alegeți un candidat HTTP din lista de proxy-uri HTTP înainte de pornirea aplicației. Dacă este stocat doar în Vault, aplicația nu poate descoperi ruta necesară pentru acea primă cerere către Vault.