Spring cloud PCF p-config-server/decrypt api返回403禁止的错误

Spring cloud PCF p-config-server/decrypt api返回403禁止的错误,spring-cloud,cloud-foundry,spring-cloud-config,Spring Cloud,Cloud Foundry,Spring Cloud Config,在尝试将spring cloud config server的加密/解密功能与Pivotal cloud Foundry的p-config-server服务(配置了对称密钥进行加密)结合使用时,我收到了403禁止响应,该响应在config server上调用/解密 我能够使用下面的示例curl成功调用/encrypt端点来加密值- curl --location --request POST 'https://config-xxxx.apps.xxx.com/encrypt' \ --heade

在尝试将spring cloud config server的加密/解密功能与Pivotal cloud Foundry的p-config-server服务(配置了对称密钥进行加密)结合使用时,我收到了403禁止响应,该响应在config server上调用/解密

我能够使用下面的示例curl成功调用/encrypt端点来加密值-

curl --location --request POST 'https://config-xxxx.apps.xxx.com/encrypt' \
--header 'Authorization: bearer <cf oauth_token here>' \
--header 'Content-Type: text/plain' \
--data-raw 'sample data'
用于解密的样本卷曲-

curl --location --request POST 'https://config-xxxx.apps.xxx.com/decrypt' \
--header 'Authorization: bearer <cf oauth_token here>' \
--header 'Content-Type: text/plain' \
--data-raw '<encrypted value from previous step>'
curl--位置--请求发布'https://config-xxxx.apps.xxx.com/decrypt' \
--标题“授权:持票人”\
--标题“内容类型:文本/普通”\
--数据原始''
在pivotal的配置服务器文档中,虽然有对/encrypt的引用,但与/decrypt无关


任何指针?

在Pivotal/Tanzu Spring云服务(商业产品)中,
/encrypt
API向具有管理范围的任何人或服务空间的任何空间开发人员公开

/decrypt
端点没有明确公开,因此不允许您使用相同的凭据进行访问,因此您看到的是403

我对代码的快速理解是,您需要一个带有scope
config\u server\uu.read
的令牌来访问该端点。其中
是配置服务器的服务指南(运行
cf service--guid
获取指南)

要实现这一点,您需要从绑定服务或服务密钥中获取令牌,后者更容易:

  • 运行
    cf创建服务密钥解密密钥
  • 运行
    cf服务密钥解密密钥
  • 运行
    export TOKEN=$(curl-vv-d'grant\u type=client\u credentials'-d'client\u id='-d'client\u secret='| jq-r.access\u TOKEN)
    ,其中
    中的值来自#2的输出
  • 运行
    curl-vv'/decrypt'-H“授权:承载$TOKEN“-H”内容类型:text/plain'-d'

  • 这些依赖于Bash shell。您可以在Windows上执行这些操作,但命令会有所不同。它还使用
    jq
    使提取令牌更容易。您可以将步骤#3中的命令分为两个步骤,使用
    curl
    获取和手动导出令牌。

    在Pivotal/Tanzu Spring云服务(商业产品)中,
    /encrypt
    API向具有管理范围的任何人或服务空间中的任何空间开发人员公开

    /decrypt
    端点没有明确公开,因此不允许您使用相同的凭据进行访问,因此您看到的是403

    我对代码的快速理解是,您需要一个带有scope
    config\u server\uu.read
    的令牌来访问该端点。其中
    是配置服务器的服务指南(运行
    cf service--guid
    获取指南)

    要实现这一点,您需要从绑定服务或服务密钥中获取令牌,后者更容易:

  • 运行
    cf创建服务密钥解密密钥
  • 运行
    cf服务密钥解密密钥
  • 运行
    export TOKEN=$(curl-vv-d'grant\u type=client\u credentials'-d'client\u id='-d'client\u secret='| jq-r.access\u TOKEN)
    ,其中
    中的值来自#2的输出
  • 运行
    curl-vv'/decrypt'-H“授权:承载$TOKEN“-H”内容类型:text/plain'-d'

  • 这些依赖于Bash shell。您可以在Windows上执行这些操作,但命令会有所不同。它还使用
    jq
    使提取令牌更容易。您可以将步骤#3中的命令分为两个步骤,使用
    curl
    获取和手动导出令牌。

    您与支持合同谈过了吗?此处不支持PCF p-config-server您与支持合同谈过了吗?这里不支持PCF p-config-server我可以通过这种方法的安全检查,但现在我在调用解密路由时遇到404错误。默认情况下是否禁用此选项?我们如何实现它??我得到的404错误是-
    {“timestamp”:“2020-12-08T09:17:41.124+0000”,“status”:404,“error”:“Not Found”,“message”:“Disabled”,“path”:“/decrypt”}
    它就在那里,我测试它时工作得很好。我使用SCS3.1进行了测试,但我不记得具体的版本。请确保您使用的是3.1.x。我们使用的是SCS 2.1-该版本不支持吗?如果您执行上述步骤并在尝试访问
    /解密
    时获得404,则是。听起来那个版本不支持它&你需要升级。我可以通过这个方法的安全检查,但是现在我在调用解密路由时遇到404错误。默认情况下是否禁用此选项?我们如何实现它??我得到的404错误是-
    {“timestamp”:“2020-12-08T09:17:41.124+0000”,“status”:404,“error”:“Not Found”,“message”:“Disabled”,“path”:“/decrypt”}
    它就在那里,我测试它时工作得很好。我使用SCS3.1进行了测试,但我不记得具体的版本。请确保您使用的是3.1.x。我们使用的是SCS 2.1-该版本不支持吗?如果您执行上述步骤并在尝试访问
    /解密
    时获得404,则是。听起来该版本不支持它&您需要升级。
    
    curl --location --request POST 'https://config-xxxx.apps.xxx.com/decrypt' \
    --header 'Authorization: bearer <cf oauth_token here>' \
    --header 'Content-Type: text/plain' \
    --data-raw '<encrypted value from previous step>'