Kada Vault isporučuje ConfigData, njegov prvi zahtjev može se dogoditi prije nego što postoji običan bean za prilagođavanje 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 identiteta.

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

Koristite kompatibilan skup zavisnosti 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 liste 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