summaryrefslogtreecommitdiff
path: root/lib/api/helpers/runner.rb
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2019-02-24 08:45:00 -0800
committerStan Hu <stanhu@gmail.com>2019-02-24 14:50:55 -0800
commitd03b7bb1e024dcbf68b523686751d3a2025ed03c (patch)
tree99e1dfd73374db247a74a11d4c5cc83f07ed2279 /lib/api/helpers/runner.rb
parentc44c83c447377f974e1d3f9b7719cd115791fbb1 (diff)
downloadgitlab-ce-d03b7bb1e024dcbf68b523686751d3a2025ed03c.tar.gz
Properly handle multiple X-Forwarded-For addresses in runner IP
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24624 extracted the X-Forwarded-For address directly, but this didn't consider the case where multiple proxies are in the chain. To fix this, we use the Rails implementation to filter trusted proxies, as documented by Grape: https://github.com/ruby-grape/grape#remote-ip Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/58103
Diffstat (limited to 'lib/api/helpers/runner.rb')
-rw-r--r--lib/api/helpers/runner.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/api/helpers/runner.rb b/lib/api/helpers/runner.rb
index 16df8e830e1..ff73a49d5e8 100644
--- a/lib/api/helpers/runner.rb
+++ b/lib/api/helpers/runner.rb
@@ -26,7 +26,7 @@ module API
end
def get_runner_ip
- { ip_address: request.env["HTTP_X_FORWARDED_FOR"] || request.ip }
+ { ip_address: env["action_dispatch.remote_ip"].to_s || request.ip }
end
def current_runner