Package org.springframework.vault.config
Class AbstractVaultConfiguration
java.lang.Object
org.springframework.vault.config.AbstractVaultConfiguration
- All Implemented Interfaces:
Aware,ApplicationContextAware
- Direct Known Subclasses:
AbstractReactiveVaultConfiguration,EnvironmentVaultConfiguration
@Configuration(proxyBeanMethods=false)
public abstract class AbstractVaultConfiguration
extends Object
implements ApplicationContextAware
Base class for Spring Vault configuration using JavaConfig.
- Author:
- Spencer Gibb, Mark Paluch
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classWrapper forClientHttpRequestFactoryto not expose the bean globally.static classWrapper to keepThreadPoolTaskSchedulerlocal to Spring Vault and to not expose the bean globally. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract ClientAuthenticationAnnotate withBeanin case you want to expose aClientAuthenticationinstance to theApplicationContext.Create aAbstractVaultConfiguration.ClientFactoryWrappercontaining aClientHttpRequestFactory.protected BeanFactoryprotected EnvironmentReturn theEnvironmentto access property sources during Spring Vault bootstrapping.protected RestTemplateFactoryReturn theRestTemplateFactory.protected ThreadPoolTaskSchedulerConstruct aRestOperationsobject configured for Vault session management and authentication usage.protected RestTemplateBuilderrestTemplateBuilder(VaultEndpointProvider endpointProvider, ClientHttpRequestFactory requestFactory) restTemplateFactory(AbstractVaultConfiguration.ClientFactoryWrapper requestFactoryWrapper) Create aRestTemplateFactorybean that is used to produceRestTemplate.Construct aLifecycleAwareSessionManagerusingclientAuthentication().voidsetApplicationContext(ApplicationContext applicationContext) Create aAbstractVaultConfiguration.TaskSchedulerWrapperused byLifecycleAwareSessionManagerandSecretLeaseContainerwrappingThreadPoolTaskScheduler.abstract VaultEndpointCreate aVaultTemplate.
-
Constructor Details
-
AbstractVaultConfiguration
public AbstractVaultConfiguration()
-
-
Method Details
-
vaultEndpoint
- Returns:
- Vault endpoint coordinates for HTTP/HTTPS communication, must not be null.
-
vaultEndpointProvider
- Returns:
- a
VaultEndpointProviderreturning the value ofvaultEndpoint(). - Since:
- 1.1
-
clientAuthentication
Annotate withBeanin case you want to expose aClientAuthenticationinstance to theApplicationContext.- Returns:
- the
ClientAuthenticationto use. Must not be null.
-
restTemplateBuilder
protected RestTemplateBuilder restTemplateBuilder(VaultEndpointProvider endpointProvider, ClientHttpRequestFactory requestFactory) Create aRestTemplateBuilderinitialized withVaultEndpointProviderandClientHttpRequestFactory. May be overridden by subclasses.- Returns:
- the
RestTemplateBuilder. - Since:
- 2.3
- See Also:
-
restTemplateFactory
@Bean public RestTemplateFactory restTemplateFactory(AbstractVaultConfiguration.ClientFactoryWrapper requestFactoryWrapper) Create aRestTemplateFactorybean that is used to produceRestTemplate.- Returns:
- the
RestTemplateFactory. - Since:
- 2.3
- See Also:
-
vaultTemplate
Create aVaultTemplate.- Returns:
- the
VaultTemplate. - See Also:
-
sessionManager
Construct aLifecycleAwareSessionManagerusingclientAuthentication(). ThisSessionManagerusesthreadPoolTaskScheduler().- Returns:
- the
SessionManagerfor Vault session management. - See Also:
-
secretLeaseContainer
- Returns:
- the
SecretLeaseContainerto allocate, renew and rotate secrets and their leases. - Throws:
Exception- See Also:
-
threadPoolTaskScheduler
@Bean("vaultThreadPoolTaskScheduler") public AbstractVaultConfiguration.TaskSchedulerWrapper threadPoolTaskScheduler()Create aAbstractVaultConfiguration.TaskSchedulerWrapperused byLifecycleAwareSessionManagerandSecretLeaseContainerwrappingThreadPoolTaskScheduler. Subclasses may override this method to reuse a different/existing scheduler.- Returns:
- the
AbstractVaultConfiguration.TaskSchedulerWrapperto use. Must not be null. - See Also:
-
restOperations
Construct aRestOperationsobject configured for Vault session management and authentication usage. Can be customized by providing aRestTemplateFactorybean.- Returns:
- the
RestOperationsto be used for Vault access. - See Also:
-
clientHttpRequestFactoryWrapper
Create aAbstractVaultConfiguration.ClientFactoryWrappercontaining aClientHttpRequestFactory.ClientHttpRequestFactoryis not exposed as root bean becauseClientHttpRequestFactoryis configured withClientOptionsandSslConfigurationwhich are not necessarily applicable for the whole application.- Returns:
- the
AbstractVaultConfiguration.ClientFactoryWrapperto wrap aClientHttpRequestFactoryinstance. - See Also:
-
clientOptions
- Returns:
ClientOptionsto configure communication parameters.- See Also:
-
sslConfiguration
- Returns:
- SSL configuration options. Defaults to
SslConfiguration.unconfigured(). - See Also:
-
getEnvironment
Return theEnvironmentto access property sources during Spring Vault bootstrapping. RequiresApplicationContextto be set.- Returns:
- the
Environmentto access property sources during Spring Vault bootstrapping.
-
setApplicationContext
- Specified by:
setApplicationContextin interfaceApplicationContextAware- Throws:
BeansException
-
getRestTemplateFactory
Return theRestTemplateFactory.- Returns:
- the
RestTemplateFactorybean. - Since:
- 2.3
-
getVaultThreadPoolTaskScheduler
-
getBeanFactory
-