0

在本地机器上,我使用默认策略运行 Vault 服务器并编写了以下键值。

vault write secret/my-application username=Test

bootstrap.yml(工作)

spring:
  application:
    name: my-application
  cloud:
    vault:
      authentication: TOKEN
      token: sometoken
      host: localhost
      port: 8200
      scheme: http
      #uri: http://localhost:8200
      connection-timeout: 5000
      read-timeout: 15000
      config:
        order: -10

我能够使用 Spring Cloud Vault 获取值,即当我使用默认挂载(秘密)时。但是,如果我使用自定义 mount(group) 访问 QA 服务器,则会收到以下错误。

org.springframework.vault.VaultException:状态 403 机密/组/组类型/组名/数据库:权限被拒绝

(不知道为什么以 secret 为前缀)

bootstrap.yml(不工作)

spring:
  application:
    name: group/grouptype/groupname/DB
  cloud:
    vault:
      authentication: TOKEN
      token: sometoken
      host: 10.20.30.40
      port: 8200
      scheme: http
      #uri: http://10.20.30.40:8200
      connection-timeout: 5000
      read-timeout: 15000
      config:
        order: -10

但是,如果我从 POSTMAN 访问 API,它会按预期工作。

GET
http://10.20.30.40:8200/v1/group/grouptype/groupname/DB
Header:  
X-Vault-Token:sometoken

如何使自定义代理与 Spring Boot 应用程序一起工作。如何从上下文中排除秘密

4

1 回答 1

0

对于自定义安装,我们必须添加 通用

spring:
  application:
    name: grouptype/groupname/DB
  cloud:
    vault:
      authentication: TOKEN
      token: sometoken
      generic:
        enabled: true
        backend: group
        default-conext: grouptype/groupname/DB 
      host: 10.20.30.40
      port: 8200
      scheme: http
      #uri: http://10.20.30.40:8200
      connection-timeout: 5000
      read-timeout: 15000
      config:
        order: -10

这里的“组”是挂载名称

于 2018-10-18T04:40:00.040 回答