Pasang pabrik proksi Spring Cloud Vault sebelum application.run
Gunakan kait registri bootstrap untuk akses ConfigData, yang dapat terjadi sebelum bean aplikasi biasa ada.
Saat Vault menyediakan ConfigData, permintaan pertamanya dapat terjadi sebelum bean penyesuai proksi biasa ada. Pasang pabrik permintaan melalui registri bootstrap sebagai gantinya.
Untuk tumpukan Spring Framework 6.1 atau lebih baru:
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 adalah SpringApplication yang sudah ada. Tambahkan penginisialisasi ini sebelum memanggil run, sambil mempertahankan URI Vault dan pengaturan autentikasi.
ClientFactoryWrapper mengekspos pabrik ini ke infrastruktur bootstrap Vault; ia tidak memasang nilai bawaan seluruh aplikasi untuk klien HTTP yang tidak terkait.
Gunakan kumpulan dependensi Cloud Vault/Boot yang kompatibel dengan proyek. Contoh Apache 4 tidak dapat disalin ke pabrik permintaan Apache 5 milik Spring Framework 6.
Sediakan alamat proksi juga sebelum bootstrap. Untuk server Vault yang dapat dijangkau publik pada rute yang mengizinkan proksi publik, pilih kandidat HTTP dari daftar proksi HTTP sebelum aplikasi dimulai. Jika hanya disimpan di Vault, aplikasi tidak dapat menemukan rute yang diperlukan untuk permintaan Vault pertama itu.