📜  Spring Boot - Hashicorp Vault 集成 - Java (1)

📅  最后修改于: 2023-12-03 14:47:32.540000             🧑  作者: Mango

Spring Boot - Hashicorp Vault 集成 - Java

简介

本文将介绍如何将 Hashicorp Vault 集成到 Spring Boot 应用程序中。Hashicorp Vault 是一个开源工具,用于安全地管理和保护敏感数据,如 API 密钥、密码和证书。

前提条件
  • Java 8 或更高版本
  • Spring Boot 2.0 或更高版本
  • Hashicorp Vault 1.4 或更高版本
步骤
1. 添加 Vault 依赖

build.gradle 文件中添加以下依赖:

implementation("org.springframework.cloud:spring-cloud-starter-vault-config")

或者,在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
2. 配置 Vault

application.yml 文件中添加以下配置:

spring.cloud.vault:
  scheme: https
  host: <vault-hostname>
  port: <vault-port>
  connection-timeout: 5000
  read-timeout: 15000
  uri: <vault-uri>
  authentication: TOKEN
  token: <vault-token>

其中,<vault-hostname><vault-port><vault-uri> 是 Vault 服务器的地址和端口号。<vault-token> 是用于访问 Vault 的令牌。

3. 读取从 Vault 中读取内容

现在,您可以通过 @Value 注解在应用程序中注入 Vault 中的值了。例如:

@RestController
public class MyController {

    @Value("${myapp.username}")
    private String username;

    @Value("${myapp.password}")
    private String password;

    @GetMapping("/credentials")
    public ResponseEntity<?> getCredentials() {
        return ResponseEntity.ok("Username: " + username + ", Password: " + password);
    }

}

在上述代码中,我们通过 @Value 注解注入了 myapp.usernamemyapp.password 配置属性。这些值将从 Vault 中读取。

总结

本文介绍了如何将 Hashicorp Vault 集成到 Spring Boot 应用程序中。通过使用 Vault,您可以更安全地管理和保护敏感数据。现在,您可以在应用程序中使用 Vault 来存储和读取敏感信息了。