Տեղադրեք Spring Cloud Vault-ի պրոքսի գործարանը application.run-ից առաջ
Օգտագործեք bootstrap գրանցամատյանի կեռիկը ConfigData-ին հասանելիության համար, ինչը կարող է տեղի ունենալ սովորական հավելվածային bean-երից առաջ։
Երբ Vault-ը տրամադրում է ConfigData, նրա առաջին հարցումը կարող է տեղի ունենալ նախքան սովորական պրոքսի-հարմարեցնող bean-ի գոյությունը։ Փոխարենը տեղադրեք հարցումների գործարանը bootstrap գրանցամատյանի միջոցով։
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-ն է։ Ավելացրեք այս սկզբնավորիչը run-ը կանչելուց առաջ՝ պահպանելով Vault URI-ն և նույնականացման կարգավորումները։
ClientFactoryWrapper-ը բացահայտում է այս գործարանը Vault-ի bootstrap ենթակառուցվածքին. այն չի տեղադրում հավելվածային լայնությամբ լռելյայն անկապ HTTP հաճախորդների համար։
Օգտագործեք նախագծի համատեղելի Cloud Vault/Boot կախվածությունների հավաքածուն։ Apache 4-ի օրինակները չեն կարող պատճենվել Spring Framework 6-ի Apache 5 հարցումների գործարանում։
Պրոքսիի հասցեն հասանելի դարձրեք նաև bootstrap-ից առաջ։ Հանրային հասանելի Vault սերվերի համար, որը գտնվում է հանրային պրոքսիներ թույլատրող երթուղու վրա, հավելվածի մեկնարկից առաջ ընտրեք HTTP թեկնածու HTTP պրոքսիների ցանկից-ից։ Եթե այն պահվում է միայն Vault-ում, հավելվածը չի կարող գտնել այդ առաջին Vault հարցման համար անհրաժեշտ երթուղին։