application.run မတိုင်မီ Spring Cloud Vault ၏ proxy factory ကို ထည့်သွင်းပါ
ပုံမှန် application bean များ မရှိမီ ဖြစ်နိုင်သော ConfigData အသုံးပြုမှုအတွက် bootstrap registry hook ကို အသုံးပြုပါ။
Vault သည် ConfigData ကို ပံ့ပိုးသောအခါ ၎င်း၏ ပထမဆုံး တောင်းခံမှုသည် ပုံမှန် proxy ချိန်ညှိသည့် bean မရှိမီ ဖြစ်နိုင်သည်။ ထိုအစား bootstrap registry မှတစ်ဆင့် တောင်းခံမှု factory ကို ထည့်သွင်းပါ။
Spring Framework 6.1 သို့မဟုတ် ထို့ထက် ပိုသစ်သော stack အတွက်:
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 ကို မခေါ်မီ ဤ initializer ကို ထည့်ပြီး Vault URI နှင့် အတည်ပြုခြင်း ဆက်တင်များကို ထိန်းသိမ်းပါ။
ClientFactoryWrapper သည် ဤ factory ကို Vault ၏ bootstrap အခြေခံအဆောက်အအုံသို့ ဖော်ထုတ်သည်၊ မသက်ဆိုင်သော HTTP client များအတွက် application တစ်ခုလုံး၏ မူလတန်ဖိုးကို မထည့်သွင်းပါ။
ပရောဂျက်၏ သဟဇာတဖြစ်သော Cloud Vault/Boot မှီခိုမှု အစုံကို အသုံးပြုပါ။ Apache 4 နမူနာများကို Spring Framework 6 ၏ Apache 5 တောင်းခံမှု factory သို့ ကူးယူ၍ မရပါ။
proxy လိပ်စာကို bootstrap မတိုင်မီလည်း ရရှိနိုင်အောင် လုပ်ပါ။ အများသူငှာ ဝင်ရောက်နိုင်သော Vault ဆာဗာအတွက် အများသူငှာ proxy များကို ခွင့်ပြုသည့် လမ်းကြောင်းတွင် application မစတင်မီ HTTP proxy စာရင်း မှ HTTP ကိုယ်စားလှယ်လောင်းကို ရွေးပါ။ ၎င်းကို Vault တွင်သာ သိမ်းဆည်းထားပါက application သည် ထို ပထမဆုံး Vault တောင်းခံမှုအတွက် လိုအပ်သော လမ်းကြောင်းကို ရှာမတွေ့နိုင်ပါ။