Forum: Ruby How to auth apache before soap request

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E9c9015851ee37a0b0b7ae554da68d26?d=identicon&s=25 Alejandro Michelin salomon (amichelin)
on 2009-02-12 18:12
hi :
I am new to ruby.

I am doing some work wiht soap.
I create a webservice server with php and a client with ruby.
The problem is that wdsl file is place in a subfolder that the parent is
protected by apache authentication.

This is the client code:

<code>
require 'net/http'
require 'rubygems'
require 'soap/wsdlDriver'

#This is folder is authenticated by apache : http://localhost/homeinf

wsdl_url = "http://localhost/homeinf/wbs/teste.wsdl"; # note that is
under authenticated folder

user = "peter";
pass = "peter123";

soap = SOAP::WSDLDriverFactory.new(wsdl_url); #  this fail.
soap.options["protocol.http.basic_auth"] << [wsdl_url,user,pass];
driver = soap.create_rpc_driver;
</code>

This give this error :
"
D:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.3.1/lib/httpclient.rb:829:in
`follow_redirect': unexpected response: #<HTTP::M
essage::Headers:0x309b070 @body_date=nil, @status_code=401,
@dumped=false, @request_method=nil, @body_charset=nil, @request_
via_proxy=nil, @chunked=false, @http_version="1.1",
@header_item=[["Date", "Thu, 12 Feb 2009 17:06:39 GMT"], ["Server", "Apa
che/2.2.11 (Win32) PHP/5.2.8"], ["WWW-Authenticate", "Basic
realm=\"teee\""], ["Content-Length", "401"], ["Content-Type", "t
ext/html; charset=iso-8859-1"]], @body_size=0, @body_type=nil,
@request_query=nil, @is_request=false, @reason_phrase="Author
ization Required", @request_uri=nil> (HTTPClient::BadResponseError)
        from
D:/ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.3.1/lib/httpclient.rb:514:in
`get_content'
        from D:/ruby/lib/ruby/1.8/wsdl/xmlSchema/importer.rb:64:in
`fetch'
        from D:/ruby/lib/ruby/1.8/wsdl/xmlSchema/importer.rb:30:in
`import'
        from D:/ruby/lib/ruby/1.8/wsdl/importer.rb:18:in `import'
        from D:/ruby/lib/ruby/1.8/soap/wsdlDriver.rb:124:in `import'
        from D:/ruby/lib/ruby/1.8/soap/wsdlDriver.rb:28:in `initialize'
        from D:/projetos-ruby/soap/soap_cliente1.rb:10:in `new'
        from D:/projetos-ruby/soap/soap_cliente1.rb:10
"

soap = SOAP::WSDLDriverFactory.new(wsdl_url) can not read the wsdl file,
becouse apache block it due authtentication fail.

How to do the apache auth before i call soap?

Thanks in advance
This topic is locked and can not be replied to.