Kapag nagbibigay ang Vault ng ConfigData, ang unang kahilingan nito ay maaaring mangyari bago umiral ang isang ordinaryong bean na nag-aayos ng proxy. Sa halip, i-install ang factory ng mga kahilingan sa pamamagitan ng bootstrap registry.

Para sa stack na Spring Framework 6.1 o mas bago:

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 ang umiiral na SpringApplication. Idagdag ang initializer na ito bago tawagin ang run, habang pinapanatili ang URI ng Vault at mga setting ng pagpapatunay.

ClientFactoryWrapper ay inilalantad ang factory na ito sa bootstrap infrastructure ng Vault; hindi ito nag-i-install ng default sa buong application para sa mga hindi kaugnay na HTTP client.

Gamitin ang katugmang set ng dependency ng Cloud Vault/Boot ng proyekto. Ang mga halimbawa ng Apache 4 ay hindi makokopya sa factory ng kahilingan na Apache 5 ng Spring Framework 6.

Gawing available din ang address ng proxy bago ang bootstrap. Para sa server ng Vault na naaabot ng publiko sa isang ruta na nagpapahintulot ng mga pampublikong proxy, pumili ng kandidatong HTTP mula sa listahan ng mga proxy na HTTP bago magsimula ang application. Kung nakaimbak lamang ito sa Vault, hindi matutuklasan ng application ang rutang kailangan para sa unang kahilingang iyon sa Vault.

Kaugnay na mga artikulo