ເມື່ອ Vault ສະໜອງ ConfigData, ຄຳຮ້ອງທຳອິດຂອງມັນອາດເກີດຂຶ້ນກ່ອນທີ່ bean ປັບແຕ່ງພຣັອກຊີປົກກະຕິຈະມີ. ໃຫ້ຕິດຕັ້ງໂຮງງານຄຳຮ້ອງຜ່ານ bootstrap registry ແທນ.

ສຳລັບ stack 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 ທີ່ມີຢູ່ແລ້ວ. ເພີ່ມ initializer ນີ້ກ່ອນເອີ້ນ run, ໂດຍຮັກສາ URI ຂອງ Vault ແລະການຕັ້ງຄ່າການພິສູດຢືນຢັນ.

ClientFactoryWrapper ເປີດເຜີຍໂຮງງານນີ້ໃຫ້ໂຄງສ້າງ bootstrap ຂອງ Vault; ມັນບໍ່ໄດ້ຕິດຕັ້ງຄ່າເລີ່ມຕົ້ນທົ່ວແອັບສຳລັບ HTTP client ທີ່ບໍ່ກ່ຽວຂ້ອງ.

ໃຊ້ຊຸດ dependency Cloud Vault/Boot ທີ່ເຂົ້າກັນໄດ້ຂອງໂຄງການ. ຕົວຢ່າງ Apache 4 ບໍ່ສາມາດຄັດລອກເຂົ້າໂຮງງານຄຳຮ້ອງ Apache 5 ຂອງ Spring Framework 6 ໄດ້.

ເຮັດໃຫ້ທີ່ຢູ່ພຣັອກຊີມີໃຫ້ໃຊ້ກ່ອນ bootstrap ດ້ວຍ. ສຳລັບເຊີບເວີ Vault ທີ່ເຂົ້າເຖິງໄດ້ຈາກສາທາລະນະຢູ່ເສັ້ນທາງທີ່ອະນຸຍາດພຣັອກຊີສາທາລະນະ, ເລືອກຜູ້ສະໝັກ HTTP ຈາກ ບັນຊີພຣັອກຊີ HTTP ກ່ອນແອັບເລີ່ມ. ຖ້າມັນຖືກເກັບໄວ້ໃນ Vault ຢ່າງດຽວ, ແອັບຈະບໍ່ສາມາດຄົ້ນພົບເສັ້ນທາງທີ່ຕ້ອງການສຳລັບຄຳຮ້ອງ Vault ທຳອິດນັ້ນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ