application.run алдында Spring Cloud Vault прокси фабрикасын орнатыңыз
ConfigData қатынасы үшін bootstrap тізілімінің ілмегін пайдаланыңыз; бұл қарапайым қолданба bean-тері пайда болмай тұрып орын алуы мүмкін.
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 сұранысы үшін қажет маршрутты таба алмайды.