Apabila Vault membekalkan ConfigData, permintaan pertamanya boleh berlaku sebelum bean penyesuai proksi biasa wujud. Pasang kilang permintaan melalui daftar bootstrap sebaliknya.

Untuk timbunan 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 ialah SpringApplication sedia ada. Tambah pemula ini sebelum memanggil run, sambil mengekalkan URI Vault dan tetapan pengesahan.

ClientFactoryWrapper mendedahkan kilang ini kepada infrastruktur bootstrap Vault; ia tidak memasang lalai seluruh aplikasi untuk klien HTTP yang tidak berkaitan.

Gunakan set kebergantungan Cloud Vault/Boot yang serasi dengan projek. Contoh Apache 4 tidak boleh disalin ke kilang permintaan Apache 5 Spring Framework 6.

Jadikan alamat proksi tersedia juga sebelum bootstrap. Untuk pelayan Vault yang boleh dicapai secara awam pada laluan yang membenarkan proksi awam, pilih calon HTTP daripada senarai proksi HTTP sebelum aplikasi bermula. Jika ia disimpan hanya dalam Vault, aplikasi tidak dapat menemui laluan yang diperlukan untuk permintaan Vault pertama itu.

Artikel berkaitan