როდესაც 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 მოთხოვნისთვისაა საჭირო.

დაკავშირებული სტატიები