3. 客户端使用

要在应用程序中使用这些功能,只需将其构建为依赖于spring-cloud-vault-config(例如,参见测试用例)。 Maven 配置示例:spring-doc.cadn.net.cn

示例 1.pom.xml
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-vault-config</artifactId>
        <version>3.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<!-- repositories also needed for snapshots and milestones -->

然后,您可以创建一个标准的 Spring Boot 应用程序,例如这个简单的 HTTP 服务器:spring-doc.cadn.net.cn

@SpringBootApplication
@RestController
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello World!";
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

当它运行时,它将从端口上的默认本地 Vault 服务器获取外部配置8200如果它正在运行。 要修改启动行为,可以使用application.properties例如spring-doc.cadn.net.cn

示例 2.application.yml
spring.cloud.vault:
    host: localhost
    port: 8200
    scheme: https
    uri: https://localhost:8200
    connection-timeout: 5000
    read-timeout: 15000
    config:
spring.config.import: vault://

启用更多集成需要额外的依赖项和配置。 根据您设置 Vault 的方式,您可能需要其他配置,例如 SSL身份验证spring-doc.cadn.net.cn

如果应用程序导入spring-boot-starter-actuatorproject 中,Vault 服务器的状态将通过/health端点。spring-doc.cadn.net.cn

可以通过属性management.health.vault.enabled(默认为true).spring-doc.cadn.net.cn

在 Spring Cloud Vault 3.0 和 Spring Boot 2.4 中,引导上下文初始化(bootstrap.yml,bootstrap.properties) 已弃用。 相反,Spring Cloud Vault 偏爱 Spring Boot 的 Config Data API,它允许从 Vault 导入配置。使用 Spring Boot Config Data 方法,您需要将spring.config.import属性以绑定到 Vault 中。您可以在 Config Data Locations 部分中阅读更多相关信息。 您可以通过设置 configuration 属性来启用 bootstrap 上下文spring.cloud.bootstrap.enabled=true或通过包含依赖项org.springframework.cloud:spring-cloud-starter-bootstrap.

3.1. 身份验证

Spring Cloud Vault 支持多种身份验证机制,以使用 Vault 对应用程序进行身份验证。spring-doc.cadn.net.cn

对于快速入门,请使用 Vault 初始化打印的根令牌。spring-doc.cadn.net.cn

例 3.application.yml
spring.cloud.vault:
    token: 19aefa97-cccc-bbbb-aaaa-225940e63d76
spring.config.import: vault://
请仔细考虑您的安全要求。 如果您想快速开始使用 Vault,静态令牌身份验证很好,但静态令牌不再受到保护。 任何向非预期方披露都允许 Vault 与关联的令牌角色一起使用。