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
  • 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)
    • 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 a VaultReactiveAutoConfiguration.ClientHttpConnectorWrapper containing a ClientHttpConnector. ClientHttpConnector is not exposed as root bean because ClientHttpConnector is configured with ClientOptions and SslConfiguration which are not necessarily applicable for the whole application.
      Returns:
      the VaultReactiveAutoConfiguration.ClientHttpConnectorWrapper to wrap a ClientHttpConnector instance.
      Since:
      3.0.2
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • createConnector

      protected org.springframework.http.client.reactive.ClientHttpConnector createConnector(VaultProperties vaultProperties)
      Creates a ClientHttpConnector configured with ClientOptions and SslConfiguration which 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 a WebClientFactory bean that is used to produce WebClient.
      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 a ReactiveVaultTemplate.
      Parameters:
      sessionManager - object provider for ReactiveSessionManager.
      Returns:
      the ReactiveVaultTemplate bean.
      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 - the BeanFactory.
      asyncTaskExecutorFactory - the ObjectFactory for VaultAutoConfiguration.TaskSchedulerWrapper.
      webClientFactory - the web client factory
      Returns:
      ReactiveSessionManager for reactive session use.
      See Also:
      • ReactiveSessionManager
      • ReactiveLifecycleAwareSessionManager
    • vaultSessionManager

      @Bean @ConditionalOnMissingBean @ConditionalOnAuthentication public org.springframework.vault.authentication.SessionManager vaultSessionManager(org.springframework.vault.authentication.ReactiveSessionManager sessionManager)
      Parameters:
      sessionManager - the ReactiveSessionManager.
      Returns:
      SessionManager adapter wrapping ReactiveSessionManager.
    • 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 - the BeanFactory.
      webClientFactory - the WebClientFactory.
      Returns:
      the VaultTokenSupplier for reactive Vault session management adapting ClientAuthentication that also implement AuthenticationStepsFactory.
      See Also:
      • AuthenticationStepsFactory