დააყენეთ 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-ის მაგალითები ვერ დაკოპირდება Spring Framework 6-ის Apache 5 მოთხოვნების ფაბრიკაში.
პროქსის მისამართი bootstrap-ამდეც ხელმისაწვდომი გახადეთ. საჯაროდ ხელმისაწვდომი Vault სერვერისთვის, მარშრუტზე, რომელიც საჯარო პროქსებს უშვებს, აპლიკაციის გაშვებამდე აირჩიეთ HTTP კანდიდატი HTTP პროქსების სიიდან-დან. თუ ის მხოლოდ Vault-ში ინახება, აპლიკაცია ვერ იპოვის იმ მარშრუტს, რომელიც ამ პირველი Vault მოთხოვნისთვისაა საჭირო.