Amikor a Vault ConfigData-t szolgáltat, első kérése még a szokásos proxy-testreszabó bean létezése előtt megtörténhet. Telepítse inkább a kérésgyárat a bootstrap-regiszteren keresztül.

Spring Framework 6.1 vagy újabb verem esetén:

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 a meglévő SpringApplication. Adja hozzá ezt az inicializálót a run meghívása előtt, megtartva a Vault URI-t és a hitelesítési beállításokat.

ClientFactoryWrapper ezt a gyárat teszi elérhetővé a Vault bootstrap-infrastruktúrája számára; nem telepít alkalmazásszintű alapértelmezést a nem kapcsolódó HTTP-kliensekhez.

Használja a projekt kompatibilis Cloud Vault/Boot függőségkészletét. Az Apache 4 példái nem másolhatók át a Spring Framework 6 Apache 5 kérésgyárába.

Tegye elérhetővé a proxy címét a bootstrap előtt is. Egy nyilvánosan elérhető Vault-kiszolgálóhoz olyan útvonalon, amely engedi a nyilvános proxykat, válasszon HTTP-jelöltet a HTTP-proxyk listájából közül az alkalmazás indítása előtt. Ha csak a Vaultban tárolják, az alkalmazás nem tudja felderíteni az első Vault-kéréshez szükséges útvonalat.

Kapcsolódó cikkek