From 24f477417fdac9d68902fa211c8edf92a2e8729f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Herv=C3=A9=20Rousseau?= Date: Mon, 27 Apr 2015 17:54:30 +0200 Subject: [PATCH] Swift: Set Content-Length when requesting/checking Keystone tokens MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/rgw/rgw_swift.cc | 2 ++ 1 file changed, 2 insertions(+) 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; -- 2.47.3