当前位置: 首页 > 知识库问答 >
问题:

在Spring Cloud配置中存储Spring Cloud Vault令牌

潘嘉颖
2023-03-14
    null
  1. 检索存储在Spring Cloud Config中的配置,包括Vault令牌。
  2. 使用Vault令牌连接到Spring Cloud Vault,然后检索存储在Spring Cloud Vault中的配置。

bootstrap.properties:

spring.application.name=my-app
spring.cloud.config.uri=http://localhost:8888

Spring Cloud配置服务器:

spring.cloud.vault.token=19aefa97-cccc-bbbb-aaaa-225940e63d76
Caused by: java.lang.IllegalArgumentException: Token (spring.cloud.vault.token) must not be empty
    at org.springframework.util.Assert.hasText(Assert.java:181)
    at org.springframework.cloud.vault.config.VaultBootstrapConfiguration.clientAuthentication(VaultBootstrapConfiguration.java:270)
    at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$473cc7b3.CGLIB$clientAuthentication$7(<generated>)
    at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$473cc7b3$$FastClassBySpringCGLIB$$5f991c47.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)
    at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$473cc7b3.clientAuthentication(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 88 common frames omitted

如果是,我们是否需要设置属性检索的顺序?即。为Spring Cloud Vault设置Spring.Cloud.vault.config.order。Spring Cloud Config有任何等效参数吗?

共有1个答案

阚原
2023-03-14

>

  • 这里似乎不是使用保险库令牌的有效情况。根据文档,Spring Cloud Config客户机应该为服务器提供一个令牌,以便从Vault-Spring Cloud Config-Vault中检索值。因此,在配置服务器中,您只需提供git、repos和Vault服务器的配置,仅此而已。它不像从Git回购那样从Vault检索所有配置。它将通过来自配置客户机的请求检索敏感属性,这些客户机将具有正确的保险库令牌。

    是的,有order属性,

    spring:
      profiles:
        active: vault, git
      cloud:
        config:
          server:
            vault:
              order: 1
            git:
              order: 2  
              uri: https://some-git-repo.com/
              username: user 
              password: pass
    

    我使用了这个StackOverflow问题中的配置,它帮助了我,并且工作得很好。

  •  类似资料:
    • 问题内容: 我正在尝试配置Jenkins(在Windows Server2008上运行)以连接到GitLab6.0存储库(在Linux机器上)。 在本地窗口框中,我可以使用SSH URL在GitLab服务器上克隆项目。我在使用HTTP URL时遇到了一些问题,但是我确实设法使用Eclipse插件通过HTTP与身份验证进行连接。 在Jenkins项目配置屏幕上,我尝试过: http://myserv

    • 32.6 配置缓存存储 开箱即用,缓存抽象提供了多种存储集成。要使用它们,需要简单地声明一个适当的CacheManager - 一个控制和管理Caches,可用于检索这些存储。 32.6.1 JDK ConcurrentMap-based Cache 基于JDK的Cache实现位于org.springframework.cache.concurrent包下。它允许使用ConcurrentHashM

    • 问题内容: 在哪里可以在客户端存储配置参数?我无法将参数存储在Servlet初始化参数(web.xml)中(因为我必须使用PHP)。那么如何在客户端存储初始化应用程序参数(例如PHP脚本位置,一些密码等)? 问题答案: 为此,您有以下选择: 将数据存储在客户端代码中。GWT会编译为javascript,最简单的方法是创建一个具有硬编码值的类。 在浏览器中存储数据。您可以使用Cookie或HTML5

    • 您可以让OpenStack将元数据写入到一个特殊的“配置盘”中,实例启动时可以挂载这个盘来读取配置信息。一般情况下,这些信息是由元数据服务提供的。注意,这里的元数据和用户数据不同。 这个功能的一个用例是在没有DHCP的情况下给实例分配IP地址。例如,您可以通过配置盘将IP地址配置传给实例,实例挂载上这个盘以后,读取其中的IP信息,before you configure the network s

    • 问题内容: 我正在尝试将非默认URL设置为安装Jenkins的木偶脚本的一部分。我知道如何通过Web UI编辑值,但似乎找不到实际存储值的位置。我已经浏览了jenkins_home文件夹和apache,但尚未找到它。 问题答案: 它将其存储在一个不太可能的位置:在Jenkins主文件夹中。

    • 持久化存储的相关配置 这里使用的是NFS的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。 $ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml $ kubectl apply -f install/kubernetes/storage/rbac.yaml $ kubectl apply -f install/