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

GCloud机密无法在spring属性中解析

楚健
2023-03-14

太长别读:GCP秘密没有在bootstrap文件中解析,但是sql starter需要一个实例连接名和bootstrap上的库名

我正在尝试将GCP Secretmanager合并到一个Spring Boot应用程序中,该应用程序运行在Google App Engine上,并使用GCP SQL。

但是,在引导时似乎没有解析前缀。

作为参考,这是我pom的一部分。(我正在使用com.google.cloud依赖项)并启用spring概要文件“gcp”

  <parent>
    <artifactId>spring-boot-starter-parent</artifactId>
    <groupId>org.springframework.boot</groupId>
    <relativePath/>
    <version>2.4.2</version> <!-- lookup parent from repository -->
  </parent>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>spring-cloud-gcp-dependencies</artifactId>
        <version>2.0.1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

<!-- ... -->
    <!-- cloud -->
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-secretmanager</artifactId>
    </dependency>

在我的引导程序中(例如)

spring:
  cloud:
    gcp:
      sql:
        database-name: ${sm://some-fancy-db-secret}
        instance-connection-name: ${sm://some-cool-connection-name}

部署时,我遇到一个异常,说明需要定义数据库名称。

如果我填写普通属性,它就可以正常工作。即使是${sm://db username}也可以在我的应用程序gcp中工作。yml文件。

当我从引导文件中移动属性时,它也会失败。似乎在引导时需要连接。(我对此有点茫然)

没有什么奇特的多项目在进行,是的,秘密是存在的。

我有一种感觉,我错过了一些愚蠢的东西,或者某个地方存在版本不匹配。(代码实验室似乎没有提到任何特别的东西。)

我也检查了这个问题。然而,建议的答案似乎不再有效了。com.google.cloud.spring.autoconfigure.secretmanager.GcpSECManagerProperties甚至不包含前缀属性,而且它在我的普通属性文件中运行良好。

共有1个答案

谭绍晖
2023-03-14

已在最新版本中修复。

 类似资料:
  • 我在https://flywaydb.org/documentation/plugins/springboot下面做了flywaydb+Spring boot的配置,它可以很好地工作 然后在java端添加了一个Bean,该Bean使用和静态方法加载属性 此外,我还确保上面的Bean实际上是使用记录器解密密码的。 但每当我运行我的应用程序时,它就会失败,错误是致命的:用户的密码验证失败--不知何故,

  • 问题内容: 我有我的配置: 我得到错误 我知道这可能缺少属性文件,但是我在类路径中恰好有它。有什么不见了? 我的web.xml: 问题答案: 你的应用程序中可能有多个。尝试在超类的方法上设置一个断点,看看在应用程序启动时是否多次调用了该断点。如果不止一个,则可能需要查看配置属性,以便你的应用程序可以正常启动。

  • 在 jsp 中调用 session.getAttribute() 方法后,我收到错误为“会话无法解析”。请建议解决它。提前谢谢。代码如下- 错误是- jsp文件中的第139行发生错误: “会话无法解决” 行:139-<代码>

  • 我试图从配置服务器加载解密的配置属性,但失败了,出现以下错误: 2018-08-07 09:58:26.534 WARN 20400-[nio-8888-exec-3]o . s . c . c . s . e . cipher environment encryptor:无法解密密钥:密码(类Java . lang . illegalstateexception:无法从存储加载密钥:类路径资源[

  • 我正在尝试执行一个非常基本的查询,并收到org.hibernate.QueryException:无法解析属性。这是我的实体: @table(name="pm_screenconfiguration")公共类ScreenConfiguration扩展了PubleMovilEntity{ } 这是我的问题: 我真的搞不懂。Im使用MySql,所有列都具有相同的实体名称。 谢谢

  • 问题内容: 我正在使用Hibernate 从表的列中获取值。 但是当我得到结果时,它会引发异常 org.hibernate.QueryException:无法解析属性:com.contaque.hibernateTableMappings.contaque_recording_log的文件名 我的食用豆是: 我从那里获取hibernate-session的hibernateUtil类: 我从表中获