Wenn Vault ConfigData bereitstellt, kann seine erste Anfrage erfolgen, bevor ein gewöhnliches Bean zur Proxy-Anpassung existiert. Installieren Sie die Anfrage-Factory stattdessen über die Bootstrap-Registry.

Für einen Stack mit Spring Framework 6.1 oder neuer:

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 ist die vorhandene SpringApplication. Fügen Sie diesen Initializer hinzu, bevor Sie run aufrufen, und behalten Sie die Vault-URI sowie die Authentifizierungseinstellungen bei.

ClientFactoryWrapper stellt diese Factory der Bootstrap-Infrastruktur von Vault bereit; sie installiert keinen anwendungsweiten Standard für nicht betroffene HTTP-Clients.

Verwenden Sie den kompatiblen Cloud-Vault/Boot-Abhängigkeitssatz des Projekts. Apache-4-Beispiele lassen sich nicht in die Apache-5-Anfrage-Factory von Spring Framework 6 übernehmen.

Machen Sie die Proxy-Adresse auch vor dem Bootstrap verfügbar. Für einen öffentlich erreichbaren Vault-Server auf einer Route, die öffentliche Proxys erlaubt, wählen Sie vor dem Anwendungsstart einen HTTP-Kandidaten aus der HTTP-Proxy-Liste. Wenn er nur in Vault gespeichert ist, kann die Anwendung die für diese erste Vault-Anfrage benötigte Route nicht ermitteln.

Ähnliche Artikel