我已按照https://github.com/spring-cloud-services-samples/cook的说明操作,并设法在PCF环境中安装和运行Config Server( SERVICE:Config Server,PLAN:standard )。
我现在正尝试点击/encrypt
服务的p-config-server
端点,以便加密新值。我按照http://docs.run.pivotal.io/spring-cloud-services/config-server/configuring-with-git.html#encryption-and-encrypted-values:
TOKEN=$(curl -k ACCESS_TOKEN_URI -u CLIENT_ID:CLIENT_SECRET -d
grant_type=client_credentials | jq -r .access_token); curl -k -H
"Authorization: bearer $TOKEN" -H "Accept: application/json"
URI/encrypt -d 'VALUE'
......但我总是得到:
{
"error": "access_denied",
"error_description": "Access is denied"
}
另一方面,如果我尝试获取标准端点,要获取应用程序的配置,我就能够检索包含应用程序属性的JSON。 E.g。
TOKEN=$(curl -k ACCESS_TOKEN_URI -u CLIENT_ID:CLIENT_SECRET -d
grant_type=client_credentials | jq -r .access_token); curl -k -H
"Authorization: bearer $TOKEN" -H "Accept: application/json"
URI/my-app/default
...给出的结果如下:
{"name":"my-app","profiles":["default"],"label":null,"version":"bb6e64592ced731ebba272430291a595e0f14a77","state":null,"propertySources":[{"name":"https://github.com/some-user/config/my-app.yml","source":{"my-property.name":"Test123"}}]}
知道为什么我无法访问/encrypt
端点吗?
谢谢。
顺便说一下,我正在CentOS Linux 7.4.1708版中执行命令,安装了jq
(命令行JSON处理器)。
答案 0 :(得分:1)
嗨其实你需要首先点击cf env命令并注意下面的示例配置值:
{
"VCAP_SERVICES": {
"p-config-server": [
{
"credentials": {
"access_token_uri": "https://p-spring-cloud-services.uaa.cf.wise.com/oauth/token",
"client_id": "p-config-server-876cd13b-1564-4a9a-9d44-c7c8a6257b73",
"client_secret": "rU7dMUw6bQjR",
"uri": "https://config-86b38ce0-eed8-4c01-adb4-1a651a6178e2.apps.wise.com"
},
[...]
然后在curl bash脚本中使用这些值。例如
TOKEN=$(curl -k https://config-86b38ce0-eed8-4c01-adb4-1a651a6178e2.apps.wise.com -u p-config-server-876cd13b-1564-4a9a-9d44-c7c8a6257b73:rU7dMUw6bQjR -d
grant_type=client_credentials | jq -r .access_token); curl -k -H
"Authorization: bearer $TOKEN" -H "Accept: application/json"
URI/ENDPOINT | jq
基本上需要以下值:
带有credentials.access_token_uri
值的ACCESS_TOKEN_URICLIENT_ID,其值为credentials.client_id CLIENT_SECRET,其值为credentials.client_secret
URI,其值为credentials.uri
将ENDPOINT替换为相关端点:
application / profile,用于从Config Server服务实例检索配置 eureka / apps从Service Registry服务实例中检索注册表
然后我认为你不会再获得访问拒绝回复。
答案 1 :(得分:1)
我得到了CloundFoundry IT支持的答案。在我的CF环境中,"加密"端点应该有一个斜杠(/)。所以它应该是...URI/encrypt/ -d 'VALUE'
。也许它有助于某人。
我还得到了一个提示:Spring-Cloud-Services有一个CF CLI插件,您可以方便地使用它。
https://github.com/pivotal-cf/spring-cloud-services-cli-plugin
cf install-plugin -r CF-Community "Spring Cloud Services"
cf help config-server-encrypt-value