我最近更新了 savon 2.0.2,我用它通过 soap 发送一些 xml。 我必须使用证书,但在更新新 savon 版本的语法后,证书将被忽略。有人可以用新语法帮助我吗——我可能遗漏了一些东西……我正在运行 ruby 1.9.3 和 rails 3.2.9
旧(工作)版本:
client = Savon::Client.new do | wsdl |
wsdl.endpoint = CONFIG['endpoint']
wsdl.namespace = CONFIG['namespace']
end
response = client.request(:ns, :getToken) do
http.auth.ssl.cert = OpenSSL::X509::Certificate.new(
File.read(Rails.root + "lib/certs/cert.pem"))
http.auth.ssl.cert_key_file = Rails.root + "lib/certs/key.pem"
http.auth.ssl.verify_mode = :none
soap.body = {
// body
}
soap.header={
"ns:account"=>{
:login=>CONFIG['login'],
:password=>CONFIG['password']
}
}
end
现在我尝试在 2.0.2 中做完全相同的事情,但它不起作用 - xml 没问题,但证书被忽略了......
到目前为止我得到了:
client = Savon.client do
endpoint CONFIG['endpoint']
namespace CONFIG['namespace']
namespace_identifier :ns
ssl_cert_file OpenSSL::X509::Certificate.new(File.read(Rails.root + "lib/certs/cert.pem"))
ssl_cert_key_file Rails.root + "lib/certs/key.pem"
ssl_verify_mode :none
soap_header(
"sus:account"=>{
:login=>CONFIG['login'],
:password=>CONFIG['password']
}
)
end
response = client.call(:getToken) do
message(
// body
)
end
任何帮助将不胜感激!!!
最佳答案
ssl_verify_mode :none
的使用告诉 Savon 关闭 SSL 检查。这就是证书被忽略的原因。正如评论中指出的那样,可以在 the Savon site 上找到完整的文档。 .
关于ruby-on-rails - 如何在 savon 2.0.2 中使用证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236690/