Vault ConfigData ұсынған кезде, оның бірінші сұранысы қарапайым прокси-бейімдеуші bean пайда болмай тұрып орын алуы мүмкін. Оның орнына сұраныс фабрикасын 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 шақыруының алдында қосыңыз, Vault URI-ін және аутентификация параметрлерін сақтап қалыңыз.

ClientFactoryWrapper бұл фабриканы Vault-тың bootstrap инфрақұрылымына ашады; ол байланысы жоқ HTTP клиенттері үшін қолданба деңгейіндегі әдепкі мәнді орнатпайды.

Жобаның үйлесімді Cloud Vault/Boot тәуелділік жиынын пайдаланыңыз. Apache 4 мысалдарын Spring Framework 6-ның Apache 5 сұраныс фабрикасына көшіру мүмкін емес.

Прокси мекенжайын bootstrap-қа дейін де қолжетімді етіңіз. Ашық қолжетімді Vault сервері үшін, ашық проксилерге рұқсат беретін маршрутта, қолданбаны іске қоспас бұрын HTTP проксилер тізімінен тізімінен HTTP үміткерін таңдаңыз. Егер ол тек Vault-та сақталса, қолданба сол бірінші Vault сұранысы үшін қажет маршрутты таба алмайды.

Қатысты мақалалар