Elmor Elmor - 6 months ago 93
Ruby Question

rails pass soap basic auth with savon

I'm trying to send soap request with basic authentication with

savon gem


My soap server is set up with
wash_out gem


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


....

When i make a request to soap server via
savon
i get an error:

@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


On the last command i get an error

Savon::SOAPFault: (Server) Missing required UsernameToken

Answer

I've tried this and it works!

@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