module SOAP::HTTPConfigLoader
Public Instance Methods
authele_to_triplets(ele)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 72 def authele_to_triplets(ele) if ele.is_a?(::Array) url, userid, passwd = ele else url, userid, passwd = ele[:url], ele[:userid], ele[:password] end return url, userid, passwd end
cert_from_file(filename)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 130 def cert_from_file(filename) OpenSSL::X509::Certificate.new(File.open(filename) { |f| f.read }) end
key_from_file(filename)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 134 def key_from_file(filename) OpenSSL::PKey::RSA.new(File.open(filename) { |f| f.read }) end
set_auth(client, auth)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 66 def set_auth(client, auth) auth.values.each do |ele| client.set_auth(*authele_to_triplets(ele)) end end
set_basic_auth(client, basic_auth)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 60 def set_basic_auth(client, basic_auth) basic_auth.values.each do |ele| client.set_basic_auth(*authele_to_triplets(ele)) end end
set_options(client, options)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 19 def set_options(client, options) client.proxy = options["proxy"] options.add_hook("proxy") do |key, value| client.proxy = value end client.no_proxy = options["no_proxy"] options.add_hook("no_proxy") do |key, value| client.no_proxy = value end if client.respond_to?(:protocol_version=) client.protocol_version = options["protocol_version"] options.add_hook("protocol_version") do |key, value| client.protocol_version = value end end ssl_config = options["ssl_config"] ||= ::SOAP::Property.new set_ssl_config(client, ssl_config) ssl_config.add_hook(true) do |key, value| set_ssl_config(client, ssl_config) end basic_auth = options["basic_auth"] ||= ::SOAP::Property.new set_basic_auth(client, basic_auth) basic_auth.add_hook do |key, value| set_basic_auth(client, basic_auth) end auth = options["auth"] ||= ::SOAP::Property.new set_auth(client, auth) auth.add_hook do |key, value| set_auth(client, auth) end options.add_hook("connect_timeout") do |key, value| client.connect_timeout = value end options.add_hook("send_timeout") do |key, value| client.send_timeout = value end options.add_hook("receive_timeout") do |key, value| client.receive_timeout = value end end
set_ssl_config(client, ssl_config)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 81 def set_ssl_config(client, ssl_config) ssl_config.each do |key, value| cfg = client.ssl_config if cfg.nil? raise NotImplementedError.new("SSL not supported") end case key when 'client_cert' cfg.client_cert = cert_from_file(value) when 'client_key' cfg.client_key = key_from_file(value) when 'client_ca' cfg.client_ca = value when 'ca_path' cfg.set_trust_ca(value) when 'ca_file' cfg.set_trust_ca(value) when 'crl' cfg.set_crl(value) when 'verify_mode' cfg.verify_mode = ssl_config_int(value) when 'verify_depth' cfg.verify_depth = ssl_config_int(value) when 'options' cfg.options = value when 'ciphers' cfg.ciphers = value when 'verify_callback' cfg.verify_callback = value when 'cert_store' cfg.cert_store = value else raise ArgumentError.new("unknown ssl_config property #{key}") end end end
ssl_config_int(value)
click to toggle source
# File lib/soap/httpconfigloader.rb, line 118 def ssl_config_int(value) if value.nil? or value.to_s.empty? nil else begin Integer(value) rescue ArgumentError ::SOAP::Property::Util.const_from_name(value.to_s) end end end