How to use WSDLDriverFactory with basic authentication?


#1

I am trying to use SOAP::WSDLDriverFactory but the server requires
basic authentication.

I’ve tried using something like:

WSDL_URI = ‘http://user:password@server:80/TestService?wsdl’;
factory = SOAP::WSDLDriverFactory.new(WSDL_URI)

But I keep getting parse errors:

/usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:112:in `decode_tag’: Unknown
element {}html. (WSDL::XMLSchema::Parser::UnknownElementError)

Which I am rather sure is due to the need for basic authentication,
since other SOAP services that don’t require authentication work just
fine. I can also get the raw WSDL just fine using something like:

require ‘net/http’
Net::HTTP.start(‘server’) { |http|
req = Net::HTTP::Get.new("/TestService?wsdl")
req.basic_auth( ‘user’, ‘password’ )
response = http.request(req)
puts response.body
}

Any tips on how to use basic authentication with WSDLDriverFactory, or
how else can I work around this?

Thanks in advance!


#2

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Sorry for late reply.

ddavidson wrote:

/usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:112:in `decode_tag’: Unknown
element {}html. (WSDL::XMLSchema::Parser::UnknownElementError)

No easy way for now. It should be allowed to configure basic_auth
user/passwd with property file. Soap4r client reads “soap/property”
file in ruby’s search path but you cannot set basic_auth parameters now.
I filed a ticket at http://dev.ctor.org/soap4r/ticket/198 .

Regards,
// NaHi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)

iD8DBQFD5g3Pf6b33ts2dPkRAlBsAJ9BZWSVY97cYyTKlDVQJRcAyabTrwCgqtLo
fDYa3UkC3BDtmGnGLfGmmrc=
=JAq4
-----END PGP SIGNATURE-----