rails通过肥皂基本认证与savon

我正在尝试使用savon gem发送带有基本身份validation的soap请求
我的soap服务器设置了wash_out gem

 class OrdersController < ApplicationController soap_service namespace: 'sir:WashOut', wsse_username: SIRA[:auth][:username], wsse_password: SIRA[:auth][:password] 

….

当我通过savon向soap服务器发出请求时出现错误:

  @client = Savon.client( wsdl: "http://localhost:3000/orders/wsdl", soap_header: { 'Username' =>SIRA[:auth][:username], 'Password' => SIRA[:auth][:password] } ) @response = @client.call(:notify ).to_hash 

在最后一个命令我得到一个错误

  Savon::SOAPFault: (Server) Missing required UsernameToken 

 client = Savon.client( wsdl: 'http://service.example.com?wsdl', soap_header: { "AuthenticateRequest" => {"apiKey" => "****** your api *********"}}, pretty_print_xml: true) client.operations response = client.call(:function) Note: "apiKey" is my prams to authenticate, your can be different 

我试过这个,它的确有效!

 @client = Savon.client( wsdl: "http://localhost:3000/orders/wsdl", wsse_auth: [SIRENA[:auth][:username], SIRENA[:auth][:password] ], logger: Rails.logger ) @response = @client.call(:notify, ).to_hash 

对于Savon 2.基本授权可以如下进行:

 @client = Savon.client( wsdl: "http://localhost:3000/orders/wsdl", basic_auth: ["username", "password"] ) @response = @client.call(:notify ).to_hash