diff options
author | azul <azul@riseup.net> | 2016-12-02 11:25:35 +0000 |
---|---|---|
committer | azul <azul@riseup.net> | 2016-12-02 11:25:35 +0000 |
commit | 8bfd27e0c851e9786110be4e6485635f769d853f (patch) | |
tree | aed9cc67f5711352e86d8314a4718c777a23cc43 /lib/nickserver/adapters | |
parent | 244d8a4702f98619078c0e09e485d7e1944e5013 (diff) | |
parent | 0aa101524270c0c398fe17c287d51927f810e499 (diff) |
Merge branch 'bugfix/couch-auth' into 'master'
bugfix: use user:password@ prefix in http basic auth
See merge request !9
Diffstat (limited to 'lib/nickserver/adapters')
-rw-r--r-- | lib/nickserver/adapters/celluloid_http.rb | 21 | ||||
-rw-r--r-- | lib/nickserver/adapters/http.rb | 24 | ||||
-rw-r--r-- | lib/nickserver/adapters/local.rb | 8 | ||||
-rw-r--r-- | lib/nickserver/adapters/remote.rb | 4 |
4 files changed, 27 insertions, 30 deletions
diff --git a/lib/nickserver/adapters/celluloid_http.rb b/lib/nickserver/adapters/celluloid_http.rb index 92c5c53..62f905f 100644 --- a/lib/nickserver/adapters/celluloid_http.rb +++ b/lib/nickserver/adapters/celluloid_http.rb @@ -1,28 +1,19 @@ -require 'nickserver/adapters' -require 'nickserver/config' +require 'nickserver/adapters/http' silence_warnings do require 'celluloid/io' end -require 'http' module Nickserver::Adapters - class CelluloidHttp + class CelluloidHttp < Http silence_warnings do include Celluloid::IO end - def get(url, options = {}) - response = HTTP.get url, - params: options[:query], - ssl_context: ctx, - ssl_socket_class: Celluloid::IO::SSLSocket - return response.code, response.to_s - end + protected - def ctx - OpenSSL::SSL::SSLContext.new.tap do |ctx| - ctx.ca_file = Nickserver::Config.hkp_ca_file - end + def default_options + super.merge ssl_socket_class: Celluloid::IO::SSLSocket end + end end 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 diff --git a/lib/nickserver/adapters/local.rb b/lib/nickserver/adapters/local.rb deleted file mode 100644 index d6210c3..0000000 --- a/lib/nickserver/adapters/local.rb +++ /dev/null @@ -1,8 +0,0 @@ -require 'nickserver/adapters' - -class Nickserver::Adapters::Local - - def query(nick) - end - -end diff --git a/lib/nickserver/adapters/remote.rb b/lib/nickserver/adapters/remote.rb deleted file mode 100644 index e12bd26..0000000 --- a/lib/nickserver/adapters/remote.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'nickserver/adapters' - -class Nickserver::Adapters::Remote -end |