[英]ruby jiraSOAP net-http ssl verify
当通过Handsoap和jiraSOAP加载时,如何指定net / http不验证SSL证书..请参阅下面的代码:
require 'jiraSOAP'
Handsoap.http_driver = :net_http
api = JIRA::JIRAService.new jira_url
api.login(jira_user,jira_pwd)
我知道我需要这个地方: OpenSSL::SSL::VERIFY_NONE
错误如下:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `connect'
from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `block in connect'
from /usr/local/lib/ruby/1.9.1/timeout.rb:58:in `timeout'
from /usr/local/lib/ruby/1.9.1/timeout.rb:89:in `timeout'
from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `connect'
from /usr/local/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
from /usr/local/lib/ruby/1.9.1/net/http.rb:626:in `start'
from /usr/local/lib/ruby/gems/1.9.1/gems/handsoap-1.1.8/lib/handsoap/http/drivers/net_http_driver.rb:53:in `send_http_request'
from /usr/local/lib/ruby/gems/1.9.1/gems/handsoap-1.1.8/lib/handsoap/service.rb:249:in `invoke'
from /usr/local/lib/ruby/gems/1.9.1/gems/jiraSOAP-0.10.3/lib/jiraSOAP/api.rb:55:in `build'
from /usr/local/lib/ruby/gems/1.9.1/gems/jiraSOAP-0.10.3/lib/jiraSOAP/api.rb:69:in `soap_call'
from /usr/local/lib/ruby/gems/1.9.1/gems/jiraSOAP-0.10.3/lib/jiraSOAP/api.rb:18:in `login'
我有同样的问题,使用HandSoap 1.1.8。 注意到NetHttpDriver在没有根范围的情况下引用Net :: Http,所以我能够稍微简洁地覆盖它。
class SoapService < ::Handsoap::Service
def http_driver_instance
Handsoap::Http.drivers[:net_http].new
end
# This is rather ugly. Handsoap provides no hooks in its drivers to allow certs to be ignored.
# Luckily, it calls Net::Http without the root scope, so we can shoehorn it.
require 'handsoap/http/drivers/net_http_driver'
require 'net/http'
module Handsoap::Http::Drivers
class NetHttpDriver
module Net
class HTTP < ::Net::HTTP
def initialize(address, port = nil)
super
self.verify_mode = OpenSSL::SSL::VERIFY_NONE
end
end
end
end
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.