Module: SOAP::HTTPConfigLoader
- Defined in:
- lib/soap/httpconfigloader.rb
Instance Method Summary (collapse)
- - (Object) authele_to_triplets(ele)
- - (Object) cert_from_file(filename)
- - (Object) key_from_file(filename)
- - (Object) set_auth(client, auth)
- - (Object) set_basic_auth(client, basic_auth)
- - (Object) set_options(client, options)
- - (Object) set_ssl_config(client, ssl_config)
- - (Object) ssl_config_int(value)
Instance Method Details
- (Object) authele_to_triplets(ele)
71 72 73 74 75 76 77 78 |
# File 'lib/soap/httpconfigloader.rb', line 71 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 |
- (Object) cert_from_file(filename)
129 130 131 |
# File 'lib/soap/httpconfigloader.rb', line 129 def cert_from_file(filename) OpenSSL::X509::Certificate.new(File.open(filename) { |f| f.read }) end |
- (Object) key_from_file(filename)
133 134 135 |
# File 'lib/soap/httpconfigloader.rb', line 133 def key_from_file(filename) OpenSSL::PKey::RSA.new(File.open(filename) { |f| f.read }) end |
- (Object) set_auth(client, auth)
65 66 67 68 69 |
# File 'lib/soap/httpconfigloader.rb', line 65 def set_auth(client, auth) auth.values.each do |ele| client.set_auth(*authele_to_triplets(ele)) end end |
- (Object) set_basic_auth(client, basic_auth)
59 60 61 62 63 |
# File 'lib/soap/httpconfigloader.rb', line 59 def set_basic_auth(client, basic_auth) basic_auth.values.each do |ele| client.set_basic_auth(*authele_to_triplets(ele)) end end |
- (Object) set_options(client, options)
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/soap/httpconfigloader.rb', line 18 def (client, ) client.proxy = ["proxy"] .add_hook("proxy") do |key, value| client.proxy = value end client.no_proxy = ["no_proxy"] .add_hook("no_proxy") do |key, value| client.no_proxy = value end if client.respond_to?(:protocol_version=) client.protocol_version = ["protocol_version"] .add_hook("protocol_version") do |key, value| client.protocol_version = value end end ssl_config = ["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 = ["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 = ["auth"] ||= ::SOAP::Property.new set_auth(client, auth) auth.add_hook do |key, value| set_auth(client, auth) end .add_hook("connect_timeout") do |key, value| client.connect_timeout = value end .add_hook("send_timeout") do |key, value| client.send_timeout = value end .add_hook("receive_timeout") do |key, value| client.receive_timeout = value end end |
- (Object) set_ssl_config(client, ssl_config)
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/soap/httpconfigloader.rb', line 80 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. = 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 |
- (Object) ssl_config_int(value)
117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/soap/httpconfigloader.rb', line 117 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 |