无法访问/加密PCF p-config-server服务的端点

时间:2017-11-07 15:26:08

标签: pivotal-cloud-foundry spring-cloud-config

我已按照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处理器)。

2 个答案:

答案 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_URI

CLIENT_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