[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

soap4r with digest authentication

Ryan Q.

5/11/2008 5:27:00 PM

Hello all,

I've been trying to get digest authentication working for soap calls for
two weeks now. All the examples I find seem to be flawed. Here's the
code that I'm using which is right out of the httpclient docs.

require 'httpclient'
require "soap/wsdlDriver"
require 'soap/rpc/driver'
require 'uri'

user = "admin"
pass = "pass"
wsdl = "http://someserver/file.wsdl"

driver = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
driver.instance_methods
driver.options["protocol.http.digest_auth"] <<
['http://someserver/SoapServer.php', user, pass]

info = driver.GetSystemInformation('')
puts info

I've changed the server url because I don't want to expose it's
location.

The error I get is:
c:/ruby/lib/ruby/1.8/soap/property.rb:269:in `check_lock': cannot add
any key to locked property (TypeError)
from c:/ruby/lib/ruby/1.8/soap/property.rb:192:in
`local_referent'
from c:/ruby/lib/ruby/1.8/soap/property.rb:230:in `referent'
from c:/ruby/lib/ruby/1.8/soap/property.rb:106:in `[]'
from C:/Documents and Settings/Administrator/Desktop/mxpua.rb:19

The line numbers in mxpua.rb won't match up, but I'm sure you guys see
where it's failing.

Any help with this would be great. I can't understand how all the
examples I find would all be wrong, but they all seem to use the same
process to add the digest auth information to the object.

Thanks for your help.

-Ryan
--
Posted via http://www.ruby-....

8 Answers

Ryan Q.

5/13/2008 7:53:00 PM

0

Anyone? I'd really appreciate the help.
--
Posted via http://www.ruby-....

Phillip Gawlowski

5/13/2008 7:58:00 PM

0

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

Ryan Q. wrote:
| Anyone? I'd really appreciate the help.

Wild guess: You are using SSL where you shouldn't, or you aren't using
SSL where you should?

Can't be of more help, though.

- --
Phillip Gawlowski
Twitter: twitter.com/cynicalryan
Blog: http://justarubyist.bl...

~ "Summer is butter on your chin and corn mush between every tooth."
- -Calvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail....

iEYEARECAAYFAkgp8t8ACgkQbtAgaoJTgL8zOgCdG/VS4j6iJaOoB4VahLVoeygq
2nYAmwYCHZYq5e0iX8Z0Dl0S5g2OUKXm
=rwPh
-----END PGP SIGNATURE-----

Ryan Q.

5/13/2008 10:02:00 PM

0

Phillip,

SSL shouldn't be a factor here. The service I'm trying to access is
clear-text http. Just using digest authentication.

The error that I'm getting in Ruby looks to be that I can't modify the
'driver' object once it's been created.

I'm guessing that there is either a way to pass those options as the
object is getting created or there is a different syntax to modify the
object after it's been created, but before the SOAP call gets sent.

Thanks,
Ryan
--
Posted via http://www.ruby-....

Sb Po

8/16/2008 8:17:00 PM

0

Hello,

I have a bit of information, if you are still working on this.

I believe this line
>>driver.options["protocol.http.digest_auth"]

should really be
>>driver.options["protocol.http.auth"]

If the server accepts basic authentication, that will be used.
If the server accepts digest authentication, that will be used.

I send authentication information to the server in both cases,
but only the first option (basic) is accepted by the server.

I would like to know if it works for you now?

Soren







Ryan Q. wrote:
> Hello all,
>
> I've been trying to get digest authentication working for soap calls for
> two weeks now. All the examples I find seem to be flawed. Here's the
> code that I'm using which is right out of the httpclient docs.
>
> require 'httpclient'
> require "soap/wsdlDriver"
> require 'soap/rpc/driver'
> require 'uri'
>
> user = "admin"
> pass = "pass"
> wsdl = "http://someserver/file.wsdl"
>
> driver = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
> driver.instance_methods
> driver.options["protocol.http.digest_auth"] <<
> ['http://someserver/SoapServer.php', user, pass]
>
> info = driver.GetSystemInformation('')
> puts info
>
> I've changed the server url because I don't want to expose it's
> location.
>
> The error I get is:
> c:/ruby/lib/ruby/1.8/soap/property.rb:269:in `check_lock': cannot add
> any key to locked property (TypeError)
> from c:/ruby/lib/ruby/1.8/soap/property.rb:192:in
> `local_referent'
> from c:/ruby/lib/ruby/1.8/soap/property.rb:230:in `referent'
> from c:/ruby/lib/ruby/1.8/soap/property.rb:106:in `[]'
> from C:/Documents and Settings/Administrator/Desktop/mxpua.rb:19
>
> The line numbers in mxpua.rb won't match up, but I'm sure you guys see
> where it's failing.
>
> Any help with this would be great. I can't understand how all the
> examples I find would all be wrong, but they all seem to use the same
> process to add the digest auth information to the object.
>
> Thanks for your help.
>
> -Ryan

--
Posted via http://www.ruby-....

David Medinets

9/7/2008 4:55:00 PM

0

Ryan Q. wrote:
> The error I get is:
> c:/ruby/lib/ruby/1.8/soap/property.rb:269:in `check_lock': cannot add
> any key to locked property (TypeError)
> from c:/ruby/lib/ruby/1.8/soap/property.rb:192:in
> `local_referent'
> from c:/ruby/lib/ruby/1.8/soap/property.rb:230:in `referent'
> from c:/ruby/lib/ruby/1.8/soap/property.rb:106:in `[]'
> from C:/Documents and Settings/Administrator/Desktop/mxpua.rb:19
>

Are you running into this issue? I am trying to perform basic
authentication and getting the same exception.
--
Posted via http://www.ruby-....

Ryan Q.

9/7/2008 5:18:00 PM

0

Yup, still getting the same error.

This change suggested above didn't help either.

I believe this line
>>driver.options["protocol.http.digest_auth"]

should really be
>>driver.options["protocol.http.auth"]






David Medinets wrote:
> Ryan Q. wrote:
>> The error I get is:
>> c:/ruby/lib/ruby/1.8/soap/property.rb:269:in `check_lock': cannot add
>> any key to locked property (TypeError)
>> from c:/ruby/lib/ruby/1.8/soap/property.rb:192:in
>> `local_referent'
>> from c:/ruby/lib/ruby/1.8/soap/property.rb:230:in `referent'
>> from c:/ruby/lib/ruby/1.8/soap/property.rb:106:in `[]'
>> from C:/Documents and Settings/Administrator/Desktop/mxpua.rb:19
>>
>
> Are you running into this issue? I am trying to perform basic
> authentication and getting the same exception.

--
Posted via http://www.ruby-....

David Medinets

9/7/2008 5:27:00 PM

0

Ryan Q. wrote:
> Yup, still getting the same error.

I'm collaborating with a Ruby expert tomorrow to see if we can't find a
fix or workaround. I'll update this thread if we succeed.
--
Posted via http://www.ruby-....

Ryan Q.

9/7/2008 7:07:00 PM

0

That would be great. Let me know how it turns out.

I gave up using Ruby because of this. I wanted to move from Perl to Ruby
for SOAP type services, but no love.

--
Posted via http://www.ruby-....