ຕິດຕັ້ງໂຮງງານພຣັອກຊີຂອງ Spring Cloud Vault ກ່ອນ application.run
ໃຊ້ hook ຂອງ bootstrap registry ສຳລັບການເຂົ້າເຖິງ ConfigData, ເຊິ່ງອາດເກີດຂຶ້ນກ່ອນທີ່ bean ປົກກະຕິຂອງແອັບຈະມີ.
ເມື່ອ 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 ທຳອິດນັ້ນ.