summaryrefslogtreecommitdiff
path: root/lib/gitlab/proxy_http_connection_adapter.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2018-03-28 19:27:16 +0200
committerDouwe Maan <douwe@selenight.nl>2018-04-02 17:20:01 +0200
commit2e3bc6a9415688d769134ee669fd457d63f497f8 (patch)
tree2f92ef930bbf16b90e01920cc22d78003e39f7cf /lib/gitlab/proxy_http_connection_adapter.rb
parent6b5ec93ad9e3a55ae0cba4fb677c2a6cff04cd70 (diff)
downloadgitlab-ce-2e3bc6a9415688d769134ee669fd457d63f497f8.tar.gz
Raise more descriptive errors when URLs are blocked
Diffstat (limited to 'lib/gitlab/proxy_http_connection_adapter.rb')
-rw-r--r--lib/gitlab/proxy_http_connection_adapter.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/gitlab/proxy_http_connection_adapter.rb b/lib/gitlab/proxy_http_connection_adapter.rb
index c70d6f4cd84..65ea8c22309 100644
--- a/lib/gitlab/proxy_http_connection_adapter.rb
+++ b/lib/gitlab/proxy_http_connection_adapter.rb
@@ -10,8 +10,12 @@
module Gitlab
class ProxyHTTPConnectionAdapter < HTTParty::ConnectionAdapter
def connection
- if !allow_local_requests? && blocked_url?
- raise URI::InvalidURIError
+ unless allow_local_requests?
+ begin
+ Gitlab::UrlBlocker.validate!(uri, allow_private_networks: false)
+ rescue Gitlab::UrlBlocker::BlockedUrlError => e
+ raise Gitlab::HTTP::BlockedUrlError, "URL '#{uri}' is blocked: #{e.message}"
+ end
end
super
@@ -19,10 +23,6 @@ module Gitlab
private
- def blocked_url?
- Gitlab::UrlBlocker.blocked_url?(uri, allow_private_networks: false)
- end
-
def allow_local_requests?
options.fetch(:allow_local_requests, allow_settings_local_requests?)
end