spring-cloud - Spring Cloud Config Server - 服务器端占位符扩展替代方案
问题描述
我有以下情况:
- 带有 Git 后端的 Spring Cloud 配置服务器
- 客户端使用各自的标签/配置文件查询配置服务器,在客户端扩展相关占位符(即
some.property=${spring.application.name}
)
这按预期工作。但是,由于 Git 后端的性质,存在一个额外的运行时(或至少启动)依赖项,其形式为可访问的 Git 存储库,其中必须包含敏感信息(加密或未加密)。
我想将其切换为在构建时复制到配置服务器旁边的文件后端。最后,我希望在 Config Server Jar 文件旁边有一个配置已经存在的 Docker 映像,并为它运行的环境提供占位符。
这个想法是这些占位符将通过环境变量进行扩展。所以,像:
config/application.yaml
spring.datasource.username=${environment.db.user}
spring.datasource.password=${environment.db.password}
secrets.env
ENVIRONMENT_DB_USER="..."
ENVIRONMENT_DB_PASSWORD="..."
docker run --env-file=secrets.env ...
这没有按预期工作。一方面,似乎正是这个用例被认为是一个安全漏洞,后来被修补了。
我现在有点不确定最好的下一步是什么。我可以理解其中的原因,-不管安全隐患如何,即使它有效,我也意识到我在服务器端有其他占位符(例如上面提到的some.property=${spring.application.name}
),它们肯定应该在客户端解决,因为它们是客户端-具体的。但是,我不希望为所有客户端多次输入共享凭证(即外部 AWS 服务等)。
可以说不同的客户不应该有共享的凭证,但这完全是一个单独的讨论。
在这种情况下,基于文件后端的配置服务器方法的最佳方法是什么?有没有 - 或者我应该更喜欢替代方法,如 JDBC 后端?
解决方案
推荐阅读
- django - Django REST 详细视图将表单未正确填写在已发布的内容上
- python - Python - 如何避免重复(列表)?
- java - 为什么在 java 中有不同的处理文件 I/O 的方法?
- security - 如何使用 costum 服务器或 proxyMiddleware 从我的 Next.js 应用程序上的另一个端口呈现网站
- react-native - 播放商店上的本机错误:java.lang.ClassCastException
- npm - 使用标签作为版本时,纱线升级而不更改 package.json
- ios - 尽管所有必需的配置都在 iPhone 中完成以在 jmeter 中录制脚本,但录制不起作用
- typescript - 为什么任何扩展 X ?A : B 给 A | 打字稿中的B?
- r - 为什么 geom_errorbar 宽度不变?
- ruby-on-rails - 电子邮件域验证的好宝石是什么?