Kada Vault isporučuje ConfigData, njegov prvi zahtev može se dogoditi pre nego što postoji običan bean za prilagođavanje proxyja. Umesto toga instalirajte tvornicu zahteva 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 pre poziva run, zadržavajući Vault URI i postavke provere identiteta.

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

Koristite kompatibilan skup zavisnosti Cloud Vault/Boot projekta. Primjeri za Apache 4 ne mogu se kopirati u Apache 5 tvornicu zahteva Spring Frameworka 6.

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

Povezani članci