Zainstaluj fabrykę proxy Spring Cloud Vault przed application.run
Użyj haka rejestru bootstrap do dostępu do ConfigData, który może wystąpić zanim powstaną zwykłe beany aplikacji.
Gdy Vault dostarcza ConfigData, jego pierwsze żądanie może wystąpić, zanim istnieje zwykły bean dostosowujący proxy. Zamiast tego zainstaluj fabrykę żądań przez rejestr bootstrap.
Dla stosu Spring Framework 6.1 lub nowszego:
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 to istniejący SpringApplication. Dodaj ten inicjalizator przed wywołaniem run, zachowując URI Vaulta i ustawienia uwierzytelniania.
ClientFactoryWrapper udostępnia tę fabrykę infrastrukturze bootstrap Vaulta; nie instaluje domyślnego ustawienia dla całej aplikacji w niepowiązanych klientach HTTP.
Użyj zgodnego zestawu zależności Cloud Vault/Boot projektu. Przykładów dla Apache 4 nie można skopiować do fabryki żądań Apache 5 w Spring Framework 6.
Udostępnij adres proxy także przed bootstrapem. Dla publicznie dostępnego serwera Vault na trasie, która zezwala na publiczne proxy, wybierz kandydata HTTP z listy proxy HTTP przed uruchomieniem aplikacji. Jeśli jest przechowywany tylko w Vault, aplikacja nie może odkryć trasy potrzebnej do tego pierwszego żądania do Vault.