summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Walker <bwalker@gitlab.com>2017-10-30 13:45:29 +0100
committerBrett Walker <bwalker@gitlab.com>2017-10-31 16:01:16 +0100
commit3d3ebd47e2aacd71a24dd314142b5fef1d4b00fc (patch)
treeec083174d00c071fc1274ddf7062fa211bf16fba
parentbd33a8290a34048b90818280edeb4e597de8a6ed (diff)
downloadgitlab-ce-3d3ebd47e2aacd71a24dd314142b5fef1d4b00fc.tar.gz
use `route_hash` when checking for whitelisting
-rw-r--r--lib/gitlab/middleware/read_only.rb4
-rw-r--r--spec/lib/gitlab/middleware/read_only_spec.rb14
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