在关键配置服务器中访问被拒绝的加密请求
Encryption request with access denied in pivotal config server
当我运行下面的脚本时,我得到以下return:
{"error": "access_denied", "error_description": "Access is denied"}
如何解决这个问题?
const request = require('request');
request({
url: 'access_token_uri',
method: 'POST',
auth: {
user: 'client_id',
pass: 'client_secret'
},
form: {
'grant_type': 'client_credentials'
}
}, function(err, res) {
var json = JSON.parse(res.body);
encrypt(json.access_token, 'word');
});
function encrypt(token, word){
request({
url: 'uri/encrypt',
method: 'POST',
auth: {
'bearer': token
},
body: word
}, function(err, res) {
console.log(res.body);
});
}
很难从您的示例中分辨出来,但我认为您得到的令牌类型有误。对于 /encrypt
端点,您需要一个基于密码的令牌。
有关更多详细信息,请参阅 Get a Password Credentials Access Token 部分(我不能 link 直接转到该部分,您必须使用之前的 link 向下滚动到该部分)。
流程基本是这样的:
cf login
cf oauth-token
curl -H "Authorization: <oauth-token>" https://uri/encrypt -d 'Value to be encrypted'
如果您想查看 cf
cli 使用的 API,您可以 export CF_TRACE=true
(Bash) 或 set CF_TRACE=true
( Windows) 然后重复命令。这将转储 HTTP request/response 信息。
当我运行下面的脚本时,我得到以下return:
{"error": "access_denied", "error_description": "Access is denied"}
如何解决这个问题?
const request = require('request');
request({
url: 'access_token_uri',
method: 'POST',
auth: {
user: 'client_id',
pass: 'client_secret'
},
form: {
'grant_type': 'client_credentials'
}
}, function(err, res) {
var json = JSON.parse(res.body);
encrypt(json.access_token, 'word');
});
function encrypt(token, word){
request({
url: 'uri/encrypt',
method: 'POST',
auth: {
'bearer': token
},
body: word
}, function(err, res) {
console.log(res.body);
});
}
很难从您的示例中分辨出来,但我认为您得到的令牌类型有误。对于 /encrypt
端点,您需要一个基于密码的令牌。
有关更多详细信息,请参阅 Get a Password Credentials Access Token 部分(我不能 link 直接转到该部分,您必须使用之前的 link 向下滚动到该部分)。
流程基本是这样的:
cf login
cf oauth-token
curl -H "Authorization: <oauth-token>" https://uri/encrypt -d 'Value to be encrypted'
如果您想查看 cf
cli 使用的 API,您可以 export CF_TRACE=true
(Bash) 或 set CF_TRACE=true
( Windows) 然后重复命令。这将转储 HTTP request/response 信息。