跳到主要内容
版本:4.1.0

快速入门

Doubao 中英对照 Getting Started

Spring Vault 支持需要 Vault 0.6 或更高版本以及 Java SE 17 或更高版本。引导搭建工作环境的一种简单方法是在 STS 中创建一个基于 Spring 的项目。

首先你需要设置一个正在运行的 Vault 服务器。请参阅 Vault 了解如何启动 Vault 实例。

要在 STS 中创建 Spring 项目,请依次进入 File → New → Spring Template Project → Simple Spring Utility Project,并在提示时按 Yes。然后输入一个项目和包名,例如 org.spring.vault.example。

然后将以下内容添加到 pom.xml 的 dependencies 部分。

示例 1:添加 Spring Vault 依赖

<dependencies>

<!-- other dependency elements omitted -->

<dependency>
<groupId>org.springframework.vault</groupId>
<artifactId>spring-vault-core</artifactId>
<version>4.1.0</version>
</dependency>

</dependencies>

如果你使用的是 SNAPSHOT,你还需要将 Spring Snapshot 仓库的位置添加到你的 maven pom.xml 中,该位置与你的 <dependencies/> 元素同级。

<repositories>
<repository>
<id>spring-snapshot</id>
<name>Spring Maven SNAPSHOT Repository</name>
<url>https://repo.spring.io/snapshot</url>
</repository>
</repositories>

该仓库也可以在此处浏览。

创建一个简单的 Secrets 类来持久化:

示例 2:映射数据对象

package org.spring.vault.example;

public class Secrets {

String username;
String password;

public String getUsername() {
return username;
}

public String getPassword() {
return password;
}
}

以及一个用于运行的主应用程序

示例 3:使用 Spring Vault 的示例应用程序

package org.springframework.vault.example;

import org.springframework.vault.authentication.TokenAuthentication;
import org.springframework.vault.client.VaultEndpoint;
import org.springframework.vault.core.VaultTemplate;
import org.springframework.vault.support.VaultResponseSupport;

public class VaultApp {

public static void main(String[] args) {

VaultTemplate vaultTemplate = new VaultTemplate(VaultClient.create("https://localhost:8200/v1"),
new TokenAuthentication("00000000-0000-0000-0000-000000000000"));

Secrets secrets = new Secrets();
secrets.username = "hello";
secrets.password = "world";

vaultTemplate.write("secret/myapp", secrets);

VaultResponseSupport<Secrets> response = vaultTemplate.read("secret/myapp", Secrets.class);
System.out.println(response.getData().getUsername());

vaultTemplate.delete("secret/myapp");
}
}

即使在这个简单的示例中,也有几点需要注意

  • 你可以使用 org.springframework.vault.client.VaultClient 对象和 ClientAuthentication 实例化 Spring Vault 的核心类 VaultTemplate。你不必启动 Spring Context 即可使用 Spring Vault。
  • Vault 需要配置一个 00000000-0000-0000-0000-000000000000 的根令牌才能运行此应用程序。
  • mapper 可以直接处理标准 POJO 对象,而无需任何额外的元数据(尽管你可以选择提供这些信息)。
  • 映射约定可以使用字段访问。请注意 Secrets 类只有 getter 方法。
  • 如果构造函数参数名与存储文档的字段名匹配,则它们将用于实例化对象。