application.run 전에 Spring Cloud Vault의 프록시 팩토리를 설치하세요
일반 애플리케이션 빈이 존재하기 전에 발생할 수 있는 ConfigData 접근에는 bootstrap 레지스트리 훅을 사용하세요.
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 요청에 필요한 경로를 알아낼 수 없습니다.