Class | WWW::Mechanize::Chain::SSLResolver |
In: |
lib/www/mechanize/chain/ssl_resolver.rb
|
Parent: | Object |
# File lib/www/mechanize/chain/ssl_resolver.rb, line 7 7: def initialize(ca_file, verify_callback, cert, key, pass) 8: @ca_file = ca_file 9: @verify_callback = verify_callback 10: @cert = cert 11: @key = key 12: @pass = pass 13: end
# File lib/www/mechanize/chain/ssl_resolver.rb, line 15 15: def handle(ctx, params) 16: uri = params[:uri] 17: http_obj = params[:connection] 18: 19: ssl = nil 20: if http_obj.instance_variable_defined?(:@ssl_context) 21: http_obj.instance_variable_get(:@ssl_context) 22: end 23: 24: if uri.scheme == 'https' && ! http_obj.started? && ! ssl.frozen? 25: http_obj.use_ssl = true 26: http_obj.verify_mode = OpenSSL::SSL::VERIFY_NONE 27: if @ca_file 28: http_obj.ca_file = @ca_file 29: http_obj.verify_mode = OpenSSL::SSL::VERIFY_PEER 30: http_obj.verify_callback = @verify_callback if @verify_callback 31: end 32: if @cert && @key 33: http_obj.cert = OpenSSL::X509::Certificate.new(::File.read(@cert)) 34: http_obj.key = OpenSSL::PKey::RSA.new(::File.read(@key), @pass) 35: end 36: end 37: super 38: end