Class VaultReactiveAutoConfiguration
java.lang.Object
org.springframework.cloud.vault.config.VaultReactiveAutoConfiguration
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
VaultReactiveBootstrapConfiguration
@Configuration(proxyBeanMethods=false)
@ConditionalOnProperty(name="spring.cloud.vault.enabled",
matchIfMissing=true)
@ConditionalOnExpression("${spring.cloud.vault.reactive.enabled:true}")
@ConditionalOnClass({reactor.core.publisher.Flux.class,org.springframework.web.reactive.function.client.WebClient.class,org.springframework.vault.core.ReactiveVaultOperations.class,reactor.netty.http.client.HttpClient.class})
@EnableConfigurationProperties(VaultProperties.class)
@AutoConfigureBefore(VaultAutoConfiguration.class)
public class VaultReactiveAutoConfiguration
extends Object
implements org.springframework.beans.factory.InitializingBean
Auto-configuration for reactive Spring Vault support.
This auto-configuration only supports static endpoints without
VaultEndpointProvider support as endpoint providers could be potentially
blocking implementations.
- Since:
- 3.0
- Author:
- Mark Paluch
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classWrapper forClientHttpConnectorto not expose the bean globally. -
Constructor Summary
ConstructorsConstructorDescriptionVaultReactiveAutoConfiguration(VaultProperties vaultProperties, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.ReactiveVaultEndpointProvider> reactiveEndpointProvider, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.VaultEndpointProvider> endpointProvider, org.springframework.beans.factory.ObjectProvider<List<org.springframework.vault.client.WebClientCustomizer>> webClientCustomizers) Deprecated.VaultReactiveAutoConfiguration(org.springframework.context.ConfigurableApplicationContext applicationContext, VaultProperties vaultProperties, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.ReactiveVaultEndpointProvider> reactiveEndpointProvider, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.VaultEndpointProvider> endpointProvider, org.springframework.beans.factory.ObjectProvider<List<org.springframework.vault.client.WebClientCustomizer>> webClientCustomizers) -
Method Summary
Modifier and TypeMethodDescriptionvoidCreates aVaultReactiveAutoConfiguration.ClientHttpConnectorWrappercontaining aClientHttpConnector.protected org.springframework.http.client.reactive.ClientHttpConnectorcreateConnector(VaultProperties vaultProperties) Creates aClientHttpConnectorconfigured withClientOptionsandSslConfigurationwhich are not necessarily applicable for the whole application.protected org.springframework.http.client.reactive.ClientHttpConnectororg.springframework.vault.authentication.ReactiveSessionManagerreactiveVaultSessionManager(org.springframework.beans.factory.BeanFactory beanFactory, org.springframework.beans.factory.ObjectFactory<VaultAutoConfiguration.TaskSchedulerWrapper> asyncTaskExecutorFactory, org.springframework.vault.client.WebClientFactory webClientFactory) org.springframework.vault.core.ReactiveVaultTemplatereactiveVaultTemplate(org.springframework.beans.factory.ObjectProvider<org.springframework.vault.authentication.ReactiveSessionManager> sessionManager) Creates aReactiveVaultTemplate.org.springframework.vault.authentication.SessionManagervaultSessionManager(org.springframework.vault.authentication.ReactiveSessionManager sessionManager) org.springframework.vault.authentication.VaultTokenSuppliervaultTokenSupplier(org.springframework.beans.factory.ListableBeanFactory beanFactory, org.springframework.vault.client.WebClientFactory webClientFactory) org.springframework.vault.client.WebClientFactoryCreate aWebClientFactorybean that is used to produceWebClient.protected org.springframework.vault.client.WebClientBuilderwebClientBuilder(org.springframework.http.client.reactive.ClientHttpConnector connector)
-
Constructor Details
-
VaultReactiveAutoConfiguration
@Deprecated public VaultReactiveAutoConfiguration(VaultProperties vaultProperties, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.ReactiveVaultEndpointProvider> reactiveEndpointProvider, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.VaultEndpointProvider> endpointProvider, org.springframework.beans.factory.ObjectProvider<List<org.springframework.vault.client.WebClientCustomizer>> webClientCustomizers) Deprecated. -
VaultReactiveAutoConfiguration
@Autowired public VaultReactiveAutoConfiguration(@Nullable org.springframework.context.ConfigurableApplicationContext applicationContext, VaultProperties vaultProperties, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.ReactiveVaultEndpointProvider> reactiveEndpointProvider, org.springframework.beans.factory.ObjectProvider<org.springframework.vault.client.VaultEndpointProvider> endpointProvider, org.springframework.beans.factory.ObjectProvider<List<org.springframework.vault.client.WebClientCustomizer>> webClientCustomizers)
-
-
Method Details
-
webClientBuilder
protected org.springframework.vault.client.WebClientBuilder webClientBuilder(org.springframework.http.client.reactive.ClientHttpConnector connector) -
clientHttpConnectorWrapper
@Bean @ConditionalOnMissingBean public VaultReactiveAutoConfiguration.ClientHttpConnectorWrapper clientHttpConnectorWrapper()Creates aVaultReactiveAutoConfiguration.ClientHttpConnectorWrappercontaining aClientHttpConnector.ClientHttpConnectoris not exposed as root bean becauseClientHttpConnectoris configured withClientOptionsandSslConfigurationwhich are not necessarily applicable for the whole application.- Returns:
- the
VaultReactiveAutoConfiguration.ClientHttpConnectorWrapperto wrap aClientHttpConnectorinstance. - Since:
- 3.0.2
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
createConnector
protected org.springframework.http.client.reactive.ClientHttpConnector createConnector(VaultProperties vaultProperties) Creates aClientHttpConnectorconfigured withClientOptionsandSslConfigurationwhich are not necessarily applicable for the whole application.- Parameters:
vaultProperties- the Vault properties.- Returns:
- the
ClientHttpConnector.
-
vaultWebClientFactory
@Bean @ConditionalOnMissingBean public org.springframework.vault.client.WebClientFactory vaultWebClientFactory()Create aWebClientFactorybean that is used to produceWebClient.- Returns:
- the
WebClientFactory. - Since:
- 3.0
-
getClientHttpConnector
protected org.springframework.http.client.reactive.ClientHttpConnector getClientHttpConnector() -
reactiveVaultTemplate
@Bean @ConditionalOnMissingBean(org.springframework.vault.core.ReactiveVaultOperations.class) public org.springframework.vault.core.ReactiveVaultTemplate reactiveVaultTemplate(org.springframework.beans.factory.ObjectProvider<org.springframework.vault.authentication.ReactiveSessionManager> sessionManager) Creates aReactiveVaultTemplate.- Parameters:
sessionManager- object provider forReactiveSessionManager.- Returns:
- the
ReactiveVaultTemplatebean. - See Also:
-
reactiveVaultSessionManager
@Bean @ConditionalOnMissingBean @ConditionalOnAuthentication public org.springframework.vault.authentication.ReactiveSessionManager reactiveVaultSessionManager(org.springframework.beans.factory.BeanFactory beanFactory, org.springframework.beans.factory.ObjectFactory<VaultAutoConfiguration.TaskSchedulerWrapper> asyncTaskExecutorFactory, org.springframework.vault.client.WebClientFactory webClientFactory) - Parameters:
beanFactory- theBeanFactory.asyncTaskExecutorFactory- theObjectFactoryforVaultAutoConfiguration.TaskSchedulerWrapper.webClientFactory- the web client factory- Returns:
ReactiveSessionManagerfor reactive session use.- See Also:
-
vaultSessionManager
@Bean @ConditionalOnMissingBean @ConditionalOnAuthentication public org.springframework.vault.authentication.SessionManager vaultSessionManager(org.springframework.vault.authentication.ReactiveSessionManager sessionManager) - Parameters:
sessionManager- theReactiveSessionManager.- Returns:
SessionManageradapter wrappingReactiveSessionManager.
-
vaultTokenSupplier
@Bean @ConditionalOnMissingBean(name="vaultTokenSupplier") @ConditionalOnAuthentication public org.springframework.vault.authentication.VaultTokenSupplier vaultTokenSupplier(org.springframework.beans.factory.ListableBeanFactory beanFactory, org.springframework.vault.client.WebClientFactory webClientFactory) - Parameters:
beanFactory- theBeanFactory.webClientFactory- theWebClientFactory.- Returns:
- the
VaultTokenSupplierfor reactive Vault session management adaptingClientAuthenticationthat also implementAuthenticationStepsFactory. - See Also:
-
VaultReactiveAutoConfiguration(ConfigurableApplicationContext, VaultProperties, ObjectProvider, ObjectProvider, ObjectProvider)instead.