Kada Vault isporučuje ConfigData, njegov prvi zahtjev može se dogoditi prije nego što postoji običan bean za prilagodbu proxyja. Umjesto toga instalirajte tvornicu zahtjeva kroz bootstrap registar.

Za Spring Framework 6.1 ili noviji skup:

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 je postojeći SpringApplication. Dodajte ovaj inicijalizator prije poziva run, zadržavajući Vault URI i postavke provjere autentičnosti.

ClientFactoryWrapper izlaže ovu tvornicu Vaultovoj bootstrap infrastrukturi; ne instalira aplikacijski širok podrazumijevani zahtjev za nepovezane HTTP klijente.

Upotrijebite kompatibilan skup ovisnosti Cloud Vault/Boot projekta. Primjeri za Apache 4 ne mogu se kopirati u Apache 5 tvornicu zahtjeva Spring Frameworka 6.

Učinite adresu proxyja dostupnom i prije bootstrapa. Za javno dostupan Vault poslužitelj na ruti koja dopušta javne proxyje, odaberite HTTP kandidata iz popisa HTTP proxyja prije pokretanja aplikacije. Ako je pohranjen samo u Vaultu, aplikacija ne može otkriti rutu potrebnu za taj prvi Vault zahtjev.

Povezani članci