Preface

The Spring Vault project applies core Spring concepts to the development of solutions using HashiCorp Vault. We provide a "template" as a high-level abstraction for storing and querying documents. You will notice similarities to the REST support in the Spring Framework.spring-doc.cn

This document is the reference guide for Spring Vault. It explains Vault concepts and semantics and the syntax.spring-doc.cn

This part of the reference documentation explains the core functionality offered by Spring Vault.spring-doc.cn

Vault support introduces the Vault module feature set.spring-doc.cn

1. Document Structure

This section provides basic introduction to Spring and Vault. It contains details about following development and how to get support.spring-doc.cn

The rest of the document refers to Spring Vault features and assumes the user is familiar with HashiCorp Vault as well as Spring concepts.spring-doc.cn

2. Knowing Spring

Spring Vault uses Spring framework’s core functionality, such as IoC container. While it is not important to know the Spring APIs, understanding the concepts behind them is. At a minimum, the idea behind IoC should be familiar for whatever IoC container you choose to use.spring-doc.cn

The core functionality of the Vault support can be used directly, with no need to invoke the IoC services of the Spring Container. This is much like RestTemplate which can be used 'standalone' without any other services of the Spring container. To leverage all the features of Spring Vault document, such as the session support, you will need to configure some parts of the library using Spring.spring-doc.cn

To learn more about Spring, you can refer to the comprehensive (and sometimes disarming) documentation that explains in detail the Spring Framework. There are a lot of articles, blog entries and books on the matter - take a look at the Spring framework home page for more information.spring-doc.cn

3. Knowing Vault

Security and working with secrets is a concern of every developer working with databases, user credentials or API keys. Vault steps in by providing a secure storage combined with access control, revocation, key rolling and auditing. In short: Vault is a service for securely accessing and storing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more.spring-doc.cn

The jumping off ground for learning about Vault is www.vaultproject.io. Here is a list of useful resources:spring-doc.cn

Spring Vault provides client-side support for accessing, storing and revoking secrets. With HashiCorp’s Vault you have a central place to manage external secret data for applications across all environments. Vault can manage static and dynamic secrets such as application data, username/password for remote applications/resources and provide credentials for external services such as MySQL, PostgreSQL, Apache Cassandra, Consul, AWS and more.spring-doc.cn

4. Requirements

Spring Vault 2.x binaries requires JDK level 8.0 and above, and Spring Framework 6.0.11 and above.spring-doc.cn

In terms of Vault, Vault at least v0.9.6.spring-doc.cn

5. Additional Help Resources

Learning a new framework is not always straight forward. In this section, we try to provide what we think is an easy to follow guide for starting with Spring Vault module. However, if you encounter issues or you are just looking for advice, feel free to use one of the links below:spring-doc.cn

5.1. Support

There are a few support options available:spring-doc.cn

5.1.1. Community Forum

Post questions regarding Spring Vault on Stackoverflow to share information and help each other. Note that registration is needed only for posting.spring-doc.cn

5.1.2. Professional Support

Professional, from-the-source support, with guaranteed response time, is available from Pivotal Software, Inc., the company behind Spring Vault and Spring.spring-doc.cn

5.2. Following Development

For information on the Spring Vault source code repository, nightly builds and snapshot artifacts please see the Spring Vault homepage. You can help make Spring Vault best serve the needs of the Spring community by interacting with developers through the Community on Stackoverflow. If you encounter a bug or want to suggest an improvement, please create a ticket on the Spring Vault issue tracker. To stay up to date with the latest news and announcements in the Spring ecosystem, subscribe to the Spring Community Portal. Lastly, you can follow the Spring blog or the project team on Twitter (SpringCentral).spring-doc.cn

6. New & Noteworthy

6.1. What’s new in Spring Vault 3.0

6.2. What’s new in Spring Vault 2.4

6.3. What’s new in Spring Vault 2.3

  • Support for PEM-encoded certificates for keystore and truststore usage.spring-doc.cn

  • ReactiveVaultEndpointProvider for non-blocking lookup of VaultEndpoint.spring-doc.cn

  • VaultKeyValueMetadataOperations for Key-Value metadata interaction.spring-doc.cn

  • Support for transform secrets engine (Enterprise Feature).spring-doc.cn

  • Documentation of how to use Vault secret backends.spring-doc.cn

  • Login credentials for Kubernetes and PCF authentication are reloaded for each login attempt.spring-doc.cn

  • SecretLeaseContainer publishes SecretLeaseRotatedEvent instead of SecretLeaseExpiredEvent and SecretLeaseCreatedEvent on successful secret rotation.spring-doc.cn

  • AbstractVaultConfiguration.threadPoolTaskScheduler() bean type changed to TaskSchedulerWrapper instead of ThreadPoolTaskScheduler.spring-doc.cn

  • Since 2.3.2: GcpIamCredentialsAuthenticationspring-doc.cn

6.4. What’s new in Spring Vault 2.2

  • Support for Key-Value v2 (versioned secrets engine) secrets through @VaultPropertySource.spring-doc.cn

  • SpEL support in @Secret.spring-doc.cn

  • Add support for Jetty as reactive HttpClient.spring-doc.cn

  • LifecycleAwareSessionManager and ReactiveLifecycleAwareSessionManager emit now AuthenticationEvents.spring-doc.cn

  • PCF authentication.spring-doc.cn

  • Deprecation of AppIdAuthentication. Use AppRoleAuthentication instead as recommended by HashiCorp Vault.spring-doc.cn

  • CubbyholeAuthentication and wrapped AppRoleAuthentication now use sys/wrapping/unwrap endpoints by default.spring-doc.cn

  • Kotlin Coroutines support for ReactiveVaultOperations.spring-doc.cn

6.5. What’s new in Spring Vault 2.1

6.6. What’s new in Spring Vault 2.0

6.7. What’s new in Spring Vault 1.1.0

6.8. What’s new in Spring Vault 1.0