diff options
author | Azul <azul@riseup.net> | 2016-12-02 11:36:02 +0100 |
---|---|---|
committer | Azul <azul@riseup.net> | 2016-12-02 11:36:02 +0100 |
commit | 65600992f5317ec8889428001313e36629b1e877 (patch) | |
tree | 300a84ac80dcc5f7151b000ceaaa18235d5591e5 /lib/nickserver/adapters/http.rb | |
parent | 396b34a52aa7594866fda090f1329827488e98bc (diff) |
bugfix: use user:password@ prefix in http basic auth
http.rb does not do this on its own.
Diffstat (limited to 'lib/nickserver/adapters/http.rb')
-rw-r--r-- | lib/nickserver/adapters/http.rb | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/nickserver/adapters/http.rb b/lib/nickserver/adapters/http.rb index b0ba728..636aceb 100644 --- a/lib/nickserver/adapters/http.rb +++ b/lib/nickserver/adapters/http.rb @@ -6,12 +6,30 @@ module Nickserver::Adapters class Http def get(url, options = {}) - response = HTTP.get url, - params: options[:query], - ssl_context: ctx + url = HTTP::URI.parse url.to_s + response = get_with_auth url, params: options[:query] return response.code, response.to_s end + protected + + def get_with_auth(url, options) + options = default_options.merge options + http_with_basic_auth(url).get url, options + end + + def http_with_basic_auth(url) + if url.password && (url.password != '') + HTTP.basic_auth(user: url.user, pass: url.password) + else + HTTP + end + end + + def default_options + { ssl_context: ctx } + end + def ctx OpenSSL::SSL::SSLContext.new.tap do |ctx| ctx.ca_file = Nickserver::Config.hkp_ca_file |