我正在编写一个java代码,我正在使用json响应对Openstack进行Http请求。
我使用此命令请求令牌:
curl -v -s -X POST http://$OS_URL:5000/v3/auth/tokens -H "Content-Type: application/json" -d '{"auth": {"identity": {"methods": ["password"],"password": {"user": {"name": "$USERNAME","domain": {"name": "$DEFAULT_NAME"},"password": "PASSWORD"}}}}}'
它给我一个json。现在,例如,我想创建一个图像,但我不知道如何使用该令牌来验证我浏览服务。 如果我使用它:
curl -v -s -X POST http://$OS_URL:9292/v2/images -H "Content-Type: application/json" -H "X-Auth_token: $TOKEN_ID" -d '{"container_format": "bare", "disk_format": "qcow2", "name": "NEWIMAGE" }'
它返回授权错误。
答案 0 :(得分:0)
据我所知,当您在没有确定项目范围的情况下请求令牌时,您可能会遇到一些问题。不确定为什么,所以这可能不是一个答案。 作为变通方法请求使用项目的令牌:
{
"auth": {
"identity": {
"methods": ["password"],
"password": {
"user": {
"name": "username",
"domain": { "id": "domain id" },
"password": "password"
}
}
},
"scope": {
"project": {
"id": "project id"
}
}
}
}