Class 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 Detail

      • 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 Detail

      • webClientBuilder

        protected org.springframework.vault.client.WebClientBuilder webClientBuilder​(org.springframework.http.client.reactive.ClientHttpConnector connector)
      • 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(BeanFactory, ObjectFactory, WebClientFactory)
      • 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