Keď Vault dodáva ConfigData, jeho prvá požiadavka môže nastať skôr, než existuje bežný bean na prispôsobenie proxy. Namiesto toho nainštalujte továreň požiadaviek cez register bootstrap.

Pre zásobník Spring Framework 6.1 alebo novší:

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 existujúci SpringApplication. Pridajte tento inicializátor pred volaním run a zachovajte URI Vaultu a nastavenia overovania.

ClientFactoryWrapper vystavuje túto továreň bootstrap infraštruktúre Vaultu; neinštaluje predvolenú hodnotu pre celú aplikáciu pri nesúvisiacich HTTP klientoch.

Použite kompatibilnú sadu závislostí Cloud Vault/Boot projektu. Príklady pre Apache 4 nie je možné skopírovať do továrne požiadaviek Apache 5 v Spring Framework 6.

Sprístupnite adresu proxy aj pred bootstrapom. Pre verejne dostupný server Vault na trase, ktorá povoľuje verejné proxy, vyberte HTTP kandidáta zo zoznamu HTTP proxy pred spustením aplikácie. Ak je uložený iba vo Vault, aplikácia nemôže zistiť trasu potrebnú pre túto prvú požiadavku na Vault.

Súvisiace články