2013-01-09 37 views
3

我最近更新了savon 2.0.2,我用它通過soap發送了一些xml。 我必須使用證書,但在更新新savon版本的語法後,證書將被忽略。可能有人幫助我的新語法 - 我可能失去了一些東西......我運行紅寶石1.9.3和3.2.9軌道如何在savon 2.0.2中使用證書

舊(工作)版本:

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 

任何幫助將是非常讚賞!

+0

您是否閱讀過本文檔的這一部分? http://savonrb.com/version2.html#globals-ssl – phoet

+0

這個問題涵蓋了類似的東西:http://stackoverflow.com/questions/15973285/does-savon-support-client-side-certificates-authentication –

+0

更新:它看起來像薩翁已經改變了這個文件很多。對於那些仍在使用Savon2的人來說,也許是爲了與一個較舊的應用程序兼容,以下是永久鏈接:https://web.archive.org/web/20130112080003/http://savonrb.com/version2.html – maurice

回答

0

使用ssl_verify_mode :none告訴Savon關閉SSL檢查。這就是爲什麼證書被忽略。正如在評論中指出的,完整的文檔可以在the Savon site找到。

相關問題