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

如何用Spring Boot实现HashiCorp的存储库

孔皓
2023-03-14

我们已经为Dev、QA、Prod实例启用了spring分析,这些实例正在AWS EC2上运行。
我们有不同的属性文件,如:
application-dev.properties
application-qa.properties
application-prod.properties

并且我们已经在这些文件中配置了数据源,如
spring.datasource.username=test
spring.datasource.password=test

并且这些凭据对于每个实例都是不同的,并且是在它们各自的属性文件中配置的。

我已经浏览了以下链接:
https://www.baeldung.com/spring-cloud-vault
以使用Spring Boot实现Vault。但是,我并没有完全理解他们提到的关于bootstrap.yml文件的内容,但是我们可以将一个实例的凭据放置在那里。

有谁能帮助我如何实现Vault和Sprint分析,我们有多个属性文件。
以及如何使用Java代码从Vault中获取数据库凭据?

共有1个答案

赖浩荡
2023-03-14

我相信您的应用程序与Spring Config server集成在一起,请检查一下。您提到的博客正在讨论动态凭据生成,这是一个有点复杂的解决方案。因此,就目前而言,您遵循下面提到的过程,并在稍后相应地修改它。

如果启用了spring config server,则bootstrap.yaml(检查引导文件和application.properties中的差异)位于src/main/resources/bootstrap.yml处的内容如下所示:

spring:
  cloud:
    config:
      uri: CONFIG-SERVER-URL
      username: USERNAME
      password: PASSWORD
    vault:
      uri: VAULT_URI
      authentication: token
      token: VAULT_TOKEN
  application:
    name: demo-application

当应用程序根据配置文件/环境从spring-config服务器读取配置时。

demo-application-dev.yml
demo-application-tst.yml
demo-application-prod.yml

以类似的方式,Vault中配置的机密将由应用程序基于配置文件读取。

因此每个配置文件中都应该配置有各自的机密。因此,Vault中的dev配置应该如下所示:

spring.datasource.username=dev
spring.datasource.password=dev

对于其他环境,如demo/prod,可以进行不同的配置:

spring.datasource.username=demo
spring.datasource.password=demo
<dependency>
                     <groupId>org.springframework.cloud</groupId>
                     <artifactId>spring-cloud-starter-vault-config</artifactId>
                     <version>1.1.0.RELEASE</version>
         </dependency>
 类似资料:
  • 我正在处理一个自动化的hashicorp保险库进程,我需要重复运行保险库操作符init命令,因为试错测试,我试图卸载保险库并再次安装,但似乎这并没有删除以前的解封密钥+根令牌,我该如何做到这一点? 我在某个地方读到,我需要删除存储“文件”路径,我已经删除了,但它不起作用(实际上我的/opt/vault/data/目录是空的),下面是我的vault.hcl文件:

  • 我正在开发一个迁移软件,它将使用来自REST服务的未知数据。 我已经考虑过使用MongoDB,但我决定不使用它,而是使用PostgreSQL。 读完本文后,我试图在我的SpringBoot应用程序中使用SpringJPA实现它,但我不知道在我的实体中映射。 我试过了,但什么也不懂! 这里就是我所在的地方: 和... 下表: 我该怎么做? 注意:我不想/不需要一个实体来工作。我的JSON将永远是St

  • 我对Vault是完全陌生的,我想要的是检测机密何时发生变化,并执行一些代码作为响应。我一直在谷歌搜索关于如何做到这一点的资源,但没有找到任何有用的东西。从我的阅读和学习中,我认为实现我想要的唯一方法是实现一个定制的秘密引擎。我说的对吗?你知道实现我想要的更好的方法吗?

  • 以下是我的模型:- 我的存储库和服务:- 控制器:- org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocconfigure/orm/jpa/hibernatejpaconfiguration.class]中定义的名为“Entity ManagerFactory”

  • 问题内容: 我在项目中使用Spring Data JPA仓库已有一段时间了,我知道以下几点: 在存储库接口中,我们可以添加类似的方法(假设和是域对象中的字段)。 然后,Spring通过在运行时(在应用程序运行期间)实现上述存储库接口方法来提供实现。 我对它的编码方式很感兴趣,并查看了Spring JPA源代码和API,但是找不到以下问题的答案: 如何在运行时生成存储库实现类以及如何实现和注入方法?

  • 我使用的是spring boot 1.2.8,但类不存在。没有这门课最好的方法是什么?