Rails 3で開発していて、Savon(savonrb.com)を使用しています
- SOAP経由でWebサービスに接続する必要があります
- Webサービスには認証が必要
接続できますが、認証を取得できません...
テストにはSOAPUIを使用しましたが、すべて正常に機能します。
Railsコードは次のようになります。
client = Savon::Client.new do
wsdl.document = "http://services.blahblah.com/Service.asmx?WSDL"
end
client.wsse.credentials "username", "password", :digest
if response.success?
@soap_status = 'Connected'
@data = response.to_array(:get_brochure_response, :error_message)
end
応答がありますが、:error_messageが認証に失敗しました...
これがSOAPUIでどのように見えるかです
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://services.blahblah.com/service">
<soap:Header>
<ser:ICEAuthHeader>
<!--Optional:-->
<ser:Username>username</ser:Username>
<!--Optional:-->
<ser:Password>password</ser:Password>
</ser:ICEAuthHeader>
</soap:Header>
<soap:Body>
<ser:GetBrochure>
<!--Optional:-->
<ser:MappedID>123</ser:MappedID>
</ser:GetBrochure>
</soap:Body>
</soap:Envelope>