התקן את מפעל הפרוקסי של Spring Cloud Vault לפני application.run
השתמש בוו רישום ה-bootstrap לגישה ל-ConfigData, שעשויה להתרחש לפני שקיימים ה-beans הרגילים של היישום.
כאשר 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, תוך שמירה על ה-URI של Vault ועל הגדרות האימות.
ClientFactoryWrapper חושף את המפעל הזה לתשתית ה-bootstrap של Vault; הוא אינו מתקין ברירת מחדל ברמת היישום עבור לקוחות HTTP לא קשורים.
השתמש בערכת התלויות התואמת של Cloud Vault/Boot של הפרויקט. לא ניתן להעתיק דוגמאות של Apache 4 אל מפעל הבקשות Apache 5 של Spring Framework 6.
הפוך את כתובת הפרוקסי לזמינה גם לפני ה-bootstrap. עבור שרת Vault הנגיש לציבור בנתיב שמתיר פרוקסי ציבוריים, בחר מועמד HTTP מתוך רשימת פרוקסי ה-HTTP לפני הפעלת היישום. אם הוא נשמר רק ב-Vault, היישום לא יוכל לגלות את הנתיב הדרוש לבקשת ה-Vault הראשונה הזו.