From 5f7d9c4ff6c78f65d074dbdf8a181cb9ae09851e Mon Sep 17 00:00:00 2001 From: John Gibson Date: Tue, 19 Sep 2017 09:17:22 -0400 Subject: [PATCH] rgw: Policies now properly evaluate the X-Forwarded-For header. Signed-off-by: John Gibson --- src/rgw/rgw_op.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index edae45f2848..2bbc74e9c67 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -607,7 +607,16 @@ rgw::IAM::Environment rgw_build_iam_environment(RGWRados* store, i = m.find("REMOTE_ADDR"); } if (i != m.end()) { - e.emplace("aws:SourceIp", i->second); + const string* ip = &(i->second); + string temp; + if (remote_addr_param == "HTTP_X_FORWARDED_FOR") { + const auto comma = ip->find(','); + if (comma != string::npos) { + temp.assign(*ip, 0, comma); + ip = &temp; + } + } + e.emplace("aws:SourceIp", *ip); } i = m.find("HTTP_USER_AGENT"); {