Getting Started
Spring Vault 支持要求 Vault 0.6 或更高版本和 Java SE 6 或更高版本。在 STS 中创建一个基于 Spring 的项目是引导设置工作环境的简便方法。
首先,您需要设置一个正在运行的 Vault 服务器。有关如何启动 Vault 实例的说明,请参阅 Vault 。
要在 STS 中创建 Spring 项目,请转至“文件”→“新建”→“Spring 模板项目”→“简单 Spring 实用工具项目”→在出现提示时按“是”。然后,输入一个项目和一个包名称,如 org.spring.vault.example
。
然后将以下内容添加到 pom.xml
依赖项部分。
<dependencies>
<!-- other dependency elements omitted -->
<dependency>
<groupId>org.springframework.vault</groupId>
<artifactId>spring-vault-core</artifactId>
<version>{version}</version>
</dependency>
</dependencies>
如果您使用的是里程碑或候选版本,则还需要将 Spring 里程碑存储库的位置添加到您的 maven pom.xml
,该位置与 <dependencies/>
元素处于同一级别。
<repositories>
<repository>
<id>spring-milestone</id>
<name>Spring Maven MILESTONE Repository</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
存储库也是 browseable here 。
如果您使用的是 SNAPSHOT,则还需要将 Spring 快照存储库的位置添加到您的 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>
存储库也是 browseable here 。
创建一个简单的 Secrets
类用于存储:
package org.spring.vault.example;
public class Secrets {
String username;
String password;
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
并创建一个主应用程序用于运行:
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(new VaultEndpoint(),
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.VaultEndpoint`对象和 `ClientAuthentication`实例化 Spring Vault 的中央类<<`VaultTemplate
,vault.core.template>>。不需要启动 Spring 上下文就能使用 Spring Vault。 -
预期 Vault 要配置有`00000000-0000-0000-0000-000000000000`的根令牌,以运行此应用程序。
-
映射器针对标准 POJO 对象工作,无需任何其他元数据(但你可以选择性地提供该信息)。
-
映射约定可以使用字段访问。请注意,`Secrets`类只有 getter。
-
如果构造函数参数名称与存储文档的字段名称匹配,则将使用它们实例化该对象。