जब Vault ConfigData प्रदान करता है, तो उसका पहला अनुरोध सामान्य प्रॉक्सी-कस्टमाइज़र बीन होने से पहले हो सकता है। इसके बजाय 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 अनुरोध के लिए आवश्यक मार्ग नहीं खोज सकता।

संबंधित लेख