From: Hervé Rousseau Date: Mon, 27 Apr 2015 15:54:30 +0000 (+0200) Subject: Swift: Set Content-Length when requesting/checking Keystone tokens X-Git-Tag: v9.0.1~32^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F4468%2Fhead;p=ceph.git Swift: Set Content-Length when requesting/checking Keystone tokens Running Keystone with WSGIChunkedRequest=On is not supported. We have to make sure that we set the Content-Length header when getting an admin token and checking revoked tokens, otherwise Keystone returns a HTTP 411 error. Same applies when checking revoked tickets. Fixes: #11473 Backport: Hammer, Firefly Signed-off-by: Hervé Rousseau --- diff --git a/src/rgw/rgw_swift.cc b/src/rgw/rgw_swift.cc index 76f21eeb16b6..a08d94400d64 100644 --- a/src/rgw/rgw_swift.cc +++ b/src/rgw/rgw_swift.cc @@ -269,6 +269,7 @@ int RGWSwift::get_keystone_admin_token(std::string& token) std::stringstream ss; jf.flush(ss); token_req.set_post_data(ss.str()); + token_req.set_send_length(ss.str().length()); int ret = token_req.process("POST", token_url.c_str()); if (ret < 0) return ret; @@ -296,6 +297,7 @@ int RGWSwift::check_revoked() return -EINVAL; url.append("v2.0/tokens/revoked"); req.append_header("X-Auth-Token", token); + req.set_send_length(0); int ret = req.process(url.c_str()); if (ret < 0) return ret;