我正在编写一个使用Hashicorp vault来存储密码和证书的应用程序。现在,我使用默认的username/pass方法来验证我的客户端应用程序。
当我试图添加一个密码时,我在设置apiVersion = v1时得到了{ statusCode: 301, body: undefined },当它被设置为v2时得到了{ statusCode: 404, body: { errors: [] } }。
配置:
let vaultOptions = {
apiVersion: 'v2',
endpoint: '0.0.0.0:8200'
};
const nodeVault = require('node-vault')(vaultOptions);
nodeVault.token = "secret token";
nodeVault.write('/secret/new', {"foo":"bar"}).then(
function (value: any) {
console.log(value);
})
.catch((err: any)=> {
console.log(err);
});因为默认情况下vault容器是初始化的,所以我没有使用init函数。
我想知道我这里漏掉了什么。
发布于 2019-05-28 19:16:22
通过向路径中添加/data,并且请求数据必须位于对象{"data": .....}中,修复了此问题。
nodeVault.write('/secret/data/new', {"data": {"foo":"bar"}}).then(
function (value: any) {
console.log(value);
})
.catch((err: any)=> {
console.log(err);
});这是因为存储库容器在v2 engine上运行
https://stackoverflow.com/questions/56296136
复制相似问题