标签: spring-cloud-vault-config

写入时保险库错误

我想测试Spring Cloud Vault配置.

我在本地安装了一个Vault服务器,当我尝试write一些键值时它失败并要求我使用vault kv put命令.

虽然此链接中的Spring Cloud Config示例显示了Vault写入命令的用法

这是我得到的错误

$ vault write secret/my-app foo=bar
Error writing data to secret/my-app: Error making API request.

URL: PUT http://127.0.0.1:8200/v1/secret/my-app
Code: 404. Errors:


WARNING! The following warnings were returned from Vault:

  * Invalid path for a versioned K/V secrets engine. See the API docs for the
  appropriate API endpoints to use. If using the Vault CLI, use 'vault kv put'
  for this operation.
Run Code Online (Sandbox Code Playgroud)

spring spring-cloud hashicorp-vault spring-cloud-vault-config

10
推荐指数
2
解决办法
4482
查看次数

配置Spring Cloud Vault Config从/ secret以外的位置提取

我目前正在将Spring Cloud Vault Config集成到Spring Boot应用程序中。从主页:

Spring Cloud Vault Config使用应用程序名称和活动配置文件从Vault读取配置属性:

/secret/{application}/{profile}
/secret/{application}
/secret/{default-context}/{profile}
/secret/{default-context}
Run Code Online (Sandbox Code Playgroud)

我想提供自己的位置,从中从不以/ secret开头的Vault中提取属性(例如/ deployments / prod)。我一直在浏览参考文档,但始终没有找到指定它的方法-可以吗?

spring-cloud hashicorp-vault spring-cloud-vault-config

5
推荐指数
2
解决办法
1232
查看次数

无法创建客户端:解析“http://127.0.0.1:8200”:URL 中的第一个路径段不能在 Hashi-corp Vault 中包含冒号

使用Hashi-Corp vaultWindows执行以下命令时出现以下错误。

无法创建客户端:解析“ http://127.0.0.1:8200”:URL 中的第一个路径段不能包含冒号

C:\Softwares\vault_1.0.1_windows_amd64>set VAULT_TOKEN="00000000-0000-0000-0000-000000000000"

C:\Softwares\vault_1.0.1_windows_amd64>set VAULT_ADDR="http://127.0.0.1:8200"

C:\Softwares\vault_1.0.1_windows_amd64>vault auth enable approle
failed to create client: parse "http://127.0.0.1:8200": first path segment in URL cannot contain colon
Run Code Online (Sandbox Code Playgroud)

如果我不设置环境变量,则会出现以下错误。

C:\Softwares\vault_1.0.1_windows_amd64>vault auth enable approle
Error enabling approle auth: Post https://127.0.0.1:8200/v1/sys/auth/approle: http: server gave HTTP response to HTTPS client 
Run Code Online (Sandbox Code Playgroud)

hashicorp-vault spring-cloud-vault-config

5
推荐指数
1
解决办法
3764
查看次数

使用 Spring Boot 加密敏感数据

大家好

我对 Spring Boot 中信用卡号等重要数据的加密进行了大量研究,安全加密数据的三种方法引起了我的注意:

  1. 使用Hashicorp Vault保护秘密
  2. 列级加密
  3. 使用Java 加密扩展进行数据加密

所有三种方法都有其优点和缺点。Vault的初始设置需要大量配置,而且我找不到完整且集成的源代码来学习它。列级数据加密会给服务器带来很大的处理负载,并且需要管理密钥。第三种情况需要为每个客户端请求创建、管理和维护加密密钥。是否有更好的选择来管理敏感的客户数据(例如电子邮件地址或信用卡号)?或者建议使用Vault来管理网站用户的秘密?

spring-security spring-boot spring-cloud-vault-config

5
推荐指数
1
解决办法
1385
查看次数

Spring Cloud Vault 与 k2 v2 - 如何避免启动时出现 403?

问题

有谁知道如何配置bootstrap.yml告诉 Spring Cloud Vault 转到 k2 v2 的正确路径而不是先尝试其他路径?

细节

我可以成功连接到运行 k2 v2 的 Vault,但 Spring Cloud 将始终尝试连接到 Vault 中不存在的路径,从而在启动时抛出 403。

Status 403 Forbidden [secret/application]: permission denied; nested exception is org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden
Run Code Online (Sandbox Code Playgroud)

上面的路径secret/application不存在,因为 k2 v2 放入data了该路径。例如:secret/data/application

这并不是什么大问题,因为 Spring Cloud Vault 确实检查其他路径,包括路径中包含该data项目的正确路径,但在启动过程中抛出毫无意义的 403 的事实就像我脑海中的一根碎片。

最终,它确实尝试了正确的 k2 v2 路径

2019-03-18 12:22:46.611  INFO 77685 --- [  restartedMain] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='vault', propertySources=[LeaseAwareVaultPropertySource {name='secret/data/my-app'}
Run Code Online (Sandbox Code Playgroud)

我的配置

    spring.cloud.vault:
      kv:
        enabled: …
Run Code Online (Sandbox Code Playgroud)

hashicorp-vault spring-cloud-vault-config

4
推荐指数
1
解决办法
4939
查看次数


Spring Cloud Config 和 Spring Cloud Vault 的初始化顺序

我们正在利用 Spring Cloud Config 和 Spring Cloud Config Vault。我们想知道是否有一种方法可以“引导引导程序”,即我们希望启动 Spring Cloud 配置服务器,然后从中提取属性以在我们的保管库配置中利用。我们查看了订单,但它似乎不起作用,我认为这是因为后处理订单,但我希望我可能会遗漏一些东西。

spring spring-boot spring-cloud spring-cloud-config spring-cloud-vault-config

3
推荐指数
1
解决办法
1788
查看次数

在 Java 单元测试期间无法禁用 Spring Vault

我在单元测试中禁用了 spring Vault。但是,它仍然启用它并在后台运行。这是我的代码。下面的代码有没有问题

@RunWith(SpringRunner.class)

@SpringBootTest(properties = "spring.cloud.vault.enabled=false", classes = 
 DummyTest.class)
public class DummyTest{
    
    @Test
    public void getDummyTest() throws Exception{
        assertTrue(true);
    }
    
}
Run Code Online (Sandbox Code Playgroud)

以下是它在控制台中打印的例外情况

Caused by: java.lang.IllegalArgumentException: Token (spring.cloud.vault.token) must not be empty
at org.springframework.util.Assert.hasText(Assert.java:287)
at org.springframework.cloud.vault.config.ClientAuthenticationFactory.createClientAuthentication(ClientAuthenticationFactory.java:108)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration.clientAuthentication(VaultBootstrapConfiguration.java:206)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$1d0bfc2.CGLIB$clientAuthentication$3(<generated>)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$1d0bfc2$$FastClassBySpringCGLIB$$7f75c921.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.springframework.cloud.vault.config.VaultBootstrapConfiguration$$EnhancerBySpringCGLIB$$1d0bfc2.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:154)
... 99 more
Run Code Online (Sandbox Code Playgroud)

java spring spring-cloud-vault-config

2
推荐指数
1
解决办法
5670
查看次数

SpringBoot 3 与 Spring Cloud Vault 3.1.1 运行时错误 java.lang.NoClassDefFoundError: org/apache/hc/client5/http/classic/HttpClient

当 spring.config.import:Vault:// set 时,Spring-boot 3 中的应用程序无法启动。\n出现以下错误:

\n
16:54:21.649 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed\njava.lang.NoClassDefFoundError: org/apache/hc/client5/http/classic/HttpClient\n
Run Code Online (Sandbox Code Playgroud)\n

描述:

\n
    \n
  • 春季启动3
  • \n
  • JDK 19
  • \n
\n

环境状态:

\n
JAVA_HOME: /Users/USER/Library/jdk-19.0.1.jdk/Contents/Home\n
Run Code Online (Sandbox Code Playgroud)\n

Java版本:

\n
\xe2\x9d\xaf java --version\nopenjdk 19.0.1 2022-10-\nOpenJDK Runtime Environment (build 19.0.1+10\nOpenJDK 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)\n
Run Code Online (Sandbox Code Playgroud)\n

应用程序.yml:

\n
spring:\n  config:\n    import: vault://\n\nspring.cloud.vault:\n  enabled: true\n  application-name: APP\n  host: ${VAULT_HOST}\n  port: 8200\n  scheme: https\n  namespace: admin\n  fail-fast: true\n  config:\n    lifecycle:\n      enabled: true\n      min-renewal: 10s\n      expiry-threshold: 1m\n  authentication: …
Run Code Online (Sandbox Code Playgroud)

java spring-boot spring-cloud-vault-config spring-webflux

2
推荐指数
1
解决办法
8582
查看次数