開始使用
Spring Vault 支援需要 Vault 0.6 或更高版本,以及 Java SE 6 或更高版本。在 STS 中建立基於 Spring 的專案,是啟動工作環境的簡單方法。
首先,您需要設定一個正在執行的 Vault 伺服器。請參閱 Vault 以瞭解如何啟動 Vault 實例。
若要在 STS 中建立 Spring 專案,請前往 File → New → Spring Template Project → Simple Spring Utility Project → 當出現提示時按下 Yes。然後輸入專案和套件名稱,例如 org.spring.vault.example
。
然後將以下內容新增至 pom.xml
相依性區段。
<dependencies>
<!-- other dependency elements omitted -->
<dependency>
<groupId>org.springframework.vault</groupId>
<artifactId>spring-vault-core</artifactId>
<version>3.1.2</version>
</dependency>
</dependencies>
如果您使用的是里程碑版本或候選發行版本,您還需要將 Spring Milestone 儲存庫的位置新增至您的 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>
此儲存庫也可在此處瀏覽。
如果您使用的是 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
類別以持久化
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
。您不需要啟動 Spring Context 即可使用 Spring Vault。 -
Vault 預期配置了根權杖
00000000-0000-0000-0000-000000000000
才能執行此應用程式。 -
映射器適用於標準 POJO 物件,而無需任何額外的中繼資料(儘管您可以選擇性地提供該資訊)。
-
映射慣例可以使用欄位存取。請注意
Secrets
類別只有 getter。 -
如果建構子引數名稱與儲存文件的欄位名稱相符,則將使用它們來實例化物件。