Инсталирајте прокси фабрику Spring Cloud Vault-а пре application.run
Користите куку bootstrap регистра за приступ ConfigData, што се може догодити пре него што постоје обични 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 не могу се копирати у Apache 5 фабрику захтева Spring Framework-а 6.
Учините адресу проксија доступном и пре bootstrap-а. За јавно доступан Vault сервер на рути која дозвољава јавне проксије, изаберите HTTP кандидата из листе HTTP проксија пре покретања апликације. Ако је сачуван само у Vault-у, апликација не може да открије руту потребну за тај први Vault захтев.