Når Vault leverer ConfigData, kan dens første anmodning ske, før en almindelig proxy-tilpasningsbønne findes. Installer i stedet anmodningsfabrikken gennem bootstrap-registeret.

Til et Spring Framework 6.1-eller-senere-stak:

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 er den eksisterende SpringApplication. Tilføj denne initializer, før du kalder run, og bevar Vault-URI'en og godkendelsesindstillingerne.

ClientFactoryWrapper eksponerer denne fabrik for Vaults bootstrap-infrastruktur; den installerer ikke en programdækkende standard for ikke-relaterede HTTP-klienter.

Brug projektets kompatible Cloud Vault/Boot-afhængighedssæt. Apache 4-eksempler kan ikke kopieres til Spring Framework 6's Apache 5-anmodningsfabrik.

Gør proxyadressen tilgængelig før bootstrap også. For en offentligt tilgængelig Vault-server på en rute, der tillader offentlige proxyer, skal du vælge en HTTP-kandidat fra HTTP-proxylisten før applikationsstart. Hvis den kun er gemt i Vault, kan applikationen ikke finde den rute, der er nødvendig for den første Vault-anmodning.

Relaterede artikler