ruby-on-rails - 如何在 savon 2.0.2 中使用证书

标签 ruby-on-rails ruby ruby-on-rails-3 soap savon

我最近更新了 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/

相关文章:

ruby-on-rails - 如何在 rspec 中跳过 x 次测试

ruby-on-rails - rails : how to redirect to "show" action of nested resource in a "create" action?

ruby - 防止物体延伸

ruby-on-rails - Rails参数,为什么params[ :key] syntax?

ruby-on-rails - Rails - 创建一个登陆页面,这与 Web 应用程序不同

ruby-on-rails - 使用 guard-zeus 时如何修复 guard 的这种失真输出?

ruby - 如何将字符串汇总为 shell glob

ruby-on-rails - Ruby 类型类不匹配错误

ruby-on-rails - 如何从 Ruby On Rails 应用程序连接到 Postgresql

javascript - 根据 rails 中上述下拉列表的选择禁用下拉列表