2013-01-09 2 views
3

최근에 savon 2.0.2에서 업데이트했으며 비누를 통해 XML을 전송하는 데 사용하고 있습니다. 인증서를 사용해야하지만 새 savon 버전의 구문을 업데이트 한 후에는 인증서가 무시됩니다. 누군가가 새로운 구문 좀 도와 수 - 아마 뭔가가있어 ... 내가 루비 1.9.3을 실행하고있어 3.2.9savon에서 인증서를 사용하는 방법 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

업데이트 : Savon이이 문서를 꽤 많이 변경 한 것처럼 보입니다. Savon2를 여전히 사용하는 사용자의 경우 이전 앱과의 호환성을 위해 여기에 영구 링크가 있습니다. https://web.archive.org/web/20130112080003/http://savonrb.com/version2.html – maurice

답변

0

ssl_verify_mode :none의 사용은 Savon에게 SSL 검사를 해제하도록 지시합니다. 그것이 인증서가 무시되는 이유입니다. 의견에서 지적한대로 전체 문서는 the Savon site에서 찾을 수 있습니다.