mirror of
https://github.com/ceph/ceph
synced 2025-01-02 17:12:31 +00:00
Fix generate keystone token from credentials
Request to v2.0/tokens must be a POST request and the request should specify JSON in the content-type header and fix request body JSON generation to have the right JSON format. Reviewed-by: Yehuda Sadeh <yehuda@inktank.com> Signed-off-by: Mouad Benchchaoui <m.benchchaoui@x-ion.de>
This commit is contained in:
parent
c5c7f6c8e8
commit
5fb90a2f6d
@ -252,18 +252,21 @@ int RGWSwift::get_keystone_admin_token(std::string& token)
|
||||
KeystoneToken t;
|
||||
bufferlist token_bl;
|
||||
RGWGetKeystoneAdminToken token_req(cct, &token_bl);
|
||||
token_req.append_header("Content-Type", "application/json");
|
||||
JSONFormatter jf;
|
||||
jf.open_object_section("auth");
|
||||
jf.open_object_section("auth"); // XXX: Workaround to have right Json object.
|
||||
jf.open_object_section("passwordCredentials");
|
||||
encode_json("username", cct->_conf->rgw_keystone_admin_user, &jf);
|
||||
encode_json("password", cct->_conf->rgw_keystone_admin_password, &jf);
|
||||
jf.close_section();
|
||||
encode_json("tenantName", cct->_conf->rgw_keystone_admin_tenant, &jf);
|
||||
jf.close_section();
|
||||
jf.close_section();
|
||||
std::stringstream ss;
|
||||
jf.flush(ss);
|
||||
token_req.set_post_data(ss.str());
|
||||
int ret = token_req.process(token_url.c_str());
|
||||
int ret = token_req.process("POST", token_url.c_str());
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
if (t.parse(cct, token_bl) != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user