Εγκαταστήστε το εργοστάσιο διακομιστή μεσολάβησης του Spring Cloud Vault πριν από το application.run
Χρησιμοποιήστε το άγκιστρο του μητρώου bootstrap για πρόσβαση στο ConfigData, που μπορεί να συμβεί πριν υπάρξουν τα συνηθισμένα beans της εφαρμογής.
Όταν το 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, διατηρώντας το URI του Vault και τις ρυθμίσεις ελέγχου ταυτότητας.
ClientFactoryWrapper εκθέτει αυτό το εργοστάσιο στην υποδομή bootstrap του Vault· δεν εγκαθιστά προεπιλογή για ολόκληρη την εφαρμογή σε άσχετους πελάτες HTTP.
Χρησιμοποιήστε το συμβατό σύνολο εξαρτήσεων Cloud Vault/Boot του έργου. Τα παραδείγματα Apache 4 δεν μπορούν να αντιγραφούν στο εργοστάσιο αιτημάτων Apache 5 του Spring Framework 6.
Κάντε τη διεύθυνση μεσολάβησης διαθέσιμη και πριν από το bootstrap. Για έναν δημόσια προσβάσιμο διακομιστή Vault σε διαδρομή που επιτρέπει δημόσιους μεσολαβητές, επιλέξτε έναν υποψήφιο HTTP από τη λίστα μεσολαβητών HTTP πριν από την εκκίνηση της εφαρμογής. Αν αποθηκεύεται μόνο στο Vault, η εφαρμογή δεν μπορεί να ανακαλύψει τη διαδρομή που απαιτείται για εκείνο το πρώτο αίτημα προς το Vault.