无法访问/加密 PCF p-config-server 服务的端点
Cannot access /encrypt endpoint of PCF p-config-server service
我已按照 https://github.com/spring-cloud-services-samples/cook 的说明进行操作,并设法在 PCF 环境中安装和 运行 配置服务器(服务:配置服务器,计划:标准 ).
我现在正在尝试访问 p-config-server
服务的 /encrypt
端点,以便加密新值。我正在按照 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。例如
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 处理器)。
您好实际上您需要先点击 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
基本上需要以下值:
ACCESS_TOKEN_URI 的值为 credentials.access_token_uri
CLIENT_ID 的值为 credentials.client_id
CLIENT_SECRET 的值为 credentials.client_secret
URI 的值为 credentials.uri
用相关端点替换 ENDPOINT:
application/profile 从配置服务器服务实例中检索配置
eureka/apps 从 Service Registry 服务实例中检索注册表
那么我认为您将不会再收到访问被拒绝的响应。
我从 CloundFoundry IT 支持那里得到了答案。在我的 CF 环境中,"encrypt" 端点应该有一个尾部斜杠 (/)。所以应该是...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
我已按照 https://github.com/spring-cloud-services-samples/cook 的说明进行操作,并设法在 PCF 环境中安装和 运行 配置服务器(服务:配置服务器,计划:标准 ).
我现在正在尝试访问 p-config-server
服务的 /encrypt
端点,以便加密新值。我正在按照 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。例如
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 处理器)。
您好实际上您需要先点击 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
基本上需要以下值:
ACCESS_TOKEN_URI 的值为 credentials.access_token_uri
CLIENT_ID 的值为 credentials.client_id CLIENT_SECRET 的值为 credentials.client_secret
URI 的值为 credentials.uri
用相关端点替换 ENDPOINT:
application/profile 从配置服务器服务实例中检索配置 eureka/apps 从 Service Registry 服务实例中检索注册表
那么我认为您将不会再收到访问被拒绝的响应。
我从 CloundFoundry IT 支持那里得到了答案。在我的 CF 环境中,"encrypt" 端点应该有一个尾部斜杠 (/)。所以应该是...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