有一个 Spring Boot 应用程序(起始父级为 2.4.8)。
该应用程序正在连接到多个数据源,并且用于在整个公司创建机密的自动化 Jenkins 作业的方式是,尽管机密名称不同(每个应用程序/源),但它们都具有相同的值 - “用户名”和“密码”文本。
例如:
-
第一个秘密是“/secret/rds/dev/foo/foo_app_user”,其值:
username : user1
password: pass1
-
第二个秘密是“/secret/snowflake/dev/hoo/hoo_app_user”,其值:
username : user2
password: pass2
试图弄清楚如何使用 spring config import 导入它们,同时仍然能够在properties/yaml文件中独特地使用
spring:
config:
import: aws secretsmanager:/secret/rds/dev/foo/foo_app_user,/secret/snowflake/dev/hoo/hoo_app_user
...
system:
cache:
username: ${username}
password: ${password}
....
snowflake:
datasource:
username: ${username}
password: ${password}
3 天前,2023 年 1 月 13 日,此问题已得到修复。提交参考 https://github.com/awspring/spring-cloud-aws/commit/4d9da9a46185559e1b0a0308eae5eb0f31f140f1
伴着春云3.0.x
(取决于弹簧靴3.0.x
) 你可以添加前缀
spring:
config:
import:
- aws-secretsmanager:/secret/rds/dev/foo/foo_app_user?prefix=foo_app.
- aws-secretsmanager:/secret/snowflake/dev/hoo/hoo_app_user?prefix=hoo_app.
现在作为 Spring Cloud 版本的解决方法2.4.x
we have
- 复制了班级
AwsSecretsManagerPropertySource
进入我们的包中的代码库io.awspring.cloud.secretsmanager
. Code Ref https://github.com/awspring/spring-cloud-aws/blob/2.4.x/spring-cloud-aws-secrets-manager-config/src/main/java/io/awspring/cloud/secretsmanager/AwsSecretsManagerPropertySource.java
- 然后使用类似的实现方法作为版本
3.0.x
. Code Ref https://github.com/awspring/spring-cloud-aws/blob/main/spring-cloud-aws-secrets-manager/src/main/java/io/awspring/cloud/secretsmanager/SecretsManagerPropertySource.java
PS:不要更改类签名。方法名称、构造函数参数应与版本相同2.4.x
编辑:2023 年 2 月 5 日
与新2.4.3
版本你可以传递相同的前缀。无需采取解决方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)