diff options
author | Brett Walker <bwalker@gitlab.com> | 2017-10-30 13:45:29 +0100 |
---|---|---|
committer | Brett Walker <bwalker@gitlab.com> | 2017-10-31 16:01:16 +0100 |
commit | 3d3ebd47e2aacd71a24dd314142b5fef1d4b00fc (patch) | |
tree | ec083174d00c071fc1274ddf7062fa211bf16fba | |
parent | bd33a8290a34048b90818280edeb4e597de8a6ed (diff) | |
download | gitlab-ce-3d3ebd47e2aacd71a24dd314142b5fef1d4b00fc.tar.gz |
use `route_hash` when checking for whitelisting
-rw-r--r-- | lib/gitlab/middleware/read_only.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/middleware/read_only_spec.rb | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/gitlab/middleware/read_only.rb b/lib/gitlab/middleware/read_only.rb index 0de0cddcce4..32f90c0c447 100644 --- a/lib/gitlab/middleware/read_only.rb +++ b/lib/gitlab/middleware/read_only.rb @@ -77,11 +77,11 @@ module Gitlab end def grack_route - request.path.end_with?('.git/git-upload-pack') + route_hash[:controller] == 'projects/git_http' && route_hash[:action] == 'git_upload_pack' end def lfs_route - request.path.end_with?('/info/lfs/objects/batch') + route_hash[:controller] == 'projects/lfs_api' && route_hash[:action] == 'batch' end end end diff --git a/spec/lib/gitlab/middleware/read_only_spec.rb b/spec/lib/gitlab/middleware/read_only_spec.rb index 742a792a1af..56ea3cf63b5 100644 --- a/spec/lib/gitlab/middleware/read_only_spec.rb +++ b/spec/lib/gitlab/middleware/read_only_spec.rb @@ -104,6 +104,20 @@ describe Gitlab::Middleware::ReadOnly do expect(response).not_to be_a_redirect expect(subject).not_to disallow_request end + + it 'expects a POST request to git-upload-pack URL to be allowed' do + response = request.post('/root/rouge.git/git-upload-pack') + + expect(response).not_to be_a_redirect + expect(subject).not_to disallow_request + end + + it 'xexpects a POST request to git-upload-pack URL to be allowed' do + response = request.post('/admin/sidekiq') + + expect(response).not_to be_a_redirect + expect(subject).not_to disallow_request + end end end |