soap4r with digest authentication

Discussion in 'Ruby' started by Ryan Q., May 11, 2008.

  1. Ryan Q.

    Ryan Q. Guest

    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-forum.com/.
    Ryan Q., May 11, 2008
    #1
    1. Advertising

  2. Ryan Q.

    Ryan Q. Guest

    Ryan Q., May 13, 2008
    #2
    1. Advertising

  3. -----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.blogspot.com

    ~ "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.mozdev.org

    iEYEARECAAYFAkgp8t8ACgkQbtAgaoJTgL8zOgCdG/VS4j6iJaOoB4VahLVoeygq
    2nYAmwYCHZYq5e0iX8Z0Dl0S5g2OUKXm
    =rwPh
    -----END PGP SIGNATURE-----
    Phillip Gawlowski, May 13, 2008
    #3
  4. Ryan Q.

    Ryan Q. Guest

    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-forum.com/.
    Ryan Q., May 13, 2008
    #4
  5. Ryan Q.

    Sb Po Guest

    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-forum.com/.
    Sb Po, Aug 16, 2008
    #5
  6. 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-forum.com/.
    David Medinets, Sep 7, 2008
    #6
  7. Ryan Q.

    Ryan Q. Guest

    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-forum.com/.
    Ryan Q., Sep 7, 2008
    #7
  8. 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-forum.com/.
    David Medinets, Sep 7, 2008
    #8
  9. Ryan Q.

    Ryan Q. Guest

    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-forum.com/.
    Ryan Q., Sep 7, 2008
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Wayne Carlaw
    Replies:
    0
    Views:
    434
    Wayne Carlaw
    Mar 29, 2005
  2. Replies:
    4
    Views:
    300
    NAKAMURA, Hiroshi
    Feb 5, 2006
  3. Tammy Mc
    Replies:
    3
    Views:
    214
    Tammy Mc
    Oct 1, 2006
  4. myalo
    Replies:
    4
    Views:
    1,291
    A. Sinan Unur
    Nov 28, 2007
  5. Replies:
    2
    Views:
    329
    Julian Cromarty
    Jun 26, 2013
Loading...

Share This Page