Калі Vault падае ConfigData, яго першы запыт можа адбыцца раней, чым існуе звычайны бін наладкі проксі. Усталюйце фабрыку запытаў праз рэестр bootstrap.

Для стэка Spring Framework 6.1 або навейшага:

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 — гэта існуючы SpringApplication. Дадайце гэты ініцыялізатар перад выклікам run, захаваўшы URI Vault і налады аўтэнтыфікацыі.

ClientFactoryWrapper адкрывае гэтую фабрыку для інфраструктуры bootstrap Vault; ён не ўсталёўвае агульнапраграмнае значэнне па змаўчанні для іншых HTTP-кліентаў.

Выкарыстоўвайце сумяшчальны набор залежнасцей Cloud Vault/Boot праекта. Прыклады Apache 4 нельга капіраваць у фабрыку запытаў Apache 5 у Spring Framework 6.

Зрабіце адрас проксі даступным таксама да bootstrap. Для публічна даступнага сервера Vault на маршруце, які дазваляе публічныя проксі, выберыце HTTP-кандыдата са спісу HTTP-проксі перад запускам праграмы. Калі ён захоўваецца толькі ў Vault, праграма не зможа выявіць маршрут, патрэбны для гэтага першага запыту да Vault.

Падобныя артыкулы