ติดตั้งพร็อกซี่แฟกทอรีของ Spring Cloud Vault ก่อน application.run
ใช้ hook ของ bootstrap registry สำหรับการเข้าถึง ConfigData ซึ่งอาจเกิดขึ้นก่อนที่ bean ปกติของแอปพลิเคชันจะมีอยู่
เมื่อ Vault จัดส่ง ConfigData คำขอแรกของมันอาจเกิดขึ้นก่อนที่ bean สำหรับปรับแต่งพร็อกซี่ตามปกติจะมีอยู่ ให้ติดตั้งแฟกทอรีคำขอผ่าน bootstrap registry แทน
สำหรับสแตก 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 ที่มีอยู่แล้ว ให้เพิ่ม initializer นี้ก่อนเรียก run โดยคง URI ของ Vault และการตั้งค่าการยืนยันตัวตนไว้
ClientFactoryWrapper เปิดเผยแฟกทอรีนี้ให้โครงสร้างพื้นฐาน bootstrap ของ Vault แต่ไม่ได้ติดตั้งค่าเริ่มต้นทั้งแอปพลิเคชันสำหรับไคลเอนต์ HTTP ที่ไม่เกี่ยวข้อง
ใช้ชุดดีเพนเดนซี Cloud Vault/Boot ที่เข้ากันได้ของโปรเจกต์ ตัวอย่าง Apache 4 ไม่สามารถคัดลอกไปยังแฟกทอรีคำขอ Apache 5 ของ Spring Framework 6 ได้
ทำให้ที่อยู่พร็อกซี่พร้อมใช้งานก่อน bootstrap ด้วย สำหรับเซิร์ฟเวอร์ Vault ที่เข้าถึงได้จากสาธารณะบนเส้นทางที่อนุญาตพร็อกซี่สาธารณะ ให้เลือกตัวเลือก HTTP จากรายการพร็อกซี่ HTTPก่อนที่แอปพลิเคชันจะเริ่ม หากเก็บไว้เฉพาะใน Vault แอปพลิเคชันจะไม่สามารถค้นหาเส้นทางที่จำเป็นสำหรับคำขอ Vault ครั้งแรกนั้นได้