问题描述
所以,我正在开发 Spring Cloud 配置服务器并使用 git 和 vault 作为我的后端。下面是我的 application.yml 文件
server:
port: 8888
spring:
profiles:
active: git,vault
application:
name: application
cloud:
config:
server:
git:
uri: https://someurl.com
vault:
port: 8200
host: 127.0.01
kv-version: 1
backend: secret
profileSeparator: /
management:
endpoints:
web:
exposure:
include: '*'
我已将我的机密以 json 格式保存在保险库中,如下所示:-
{
"default": {
"abc1": "xyz","abc2": "xyz3"
},"username": "user-id","properties": {
"abcd": {
"XYZ": "012","PQR": "alphabets"
}
}
}
但是当我尝试使用 http://localhost:8888/application/default 获取这些属性作为我的配置服务器响应时,我得到的响应如下:-
{
"name": "application","profiles": [
"default"
],"label": null,"version": null,"state": null,"propertySources": [
{
"name": "vault:application","source": {
"default.abc1": "xyz","default.abc2": "xyz3"
"username": "user-id"
"properties.abcd.XYZ": "012","properties.abcd.PQR": "alphabets"
}
}
}
基本上我希望我的响应看起来像一个嵌套的 json,就像它在 vault 服务器上的方式而不是点格式。我希望我的回复看起来像这样:-
{
"name": "application","source": {
"default": {
"abc1": "xyz","abc2": "xyz3"
},"properties": {
"abcd": {
"XYZ": "012",--> //I don't want these props likethis "properties.abcd.XYZ": "012"
"PQR": "alphabets"
}
}
}
}
}
所以,想知道在使用 vault 作为后端时,有没有可能操纵我的配置服务器响应的结构(格式)?例如:当我在本地文件系统后端工作时,它提供了 PropertySourceLoader 接口,我们可以通过覆盖 load() 方法来实现和操作我们的响应结构到 map
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)