Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: NTLM Authentication with SOAP::Lite not working

by Anonymous Monk
on Oct 28, 2008 at 13:38 UTC ( [id://719995]=note: print w/replies, xml ) Need Help??


in reply to NTLM Authentication with SOAP::Lite not working

LWP::Authen::Ntlm::authenticate: No username and password available from get_basic_credentials(). Returning unmodified response object
grep SOAP-Lite-0.710.08 credentials :
SOAP-Lite-0.710.08/examples/authentication.pl
#!perl -w #!d:\perl\bin\perl.exe # -- SOAP::Lite -- soaplite.com -- Copyright (C) 2001 Paul Kulchenko - +- use SOAP::Lite +autodispatch => uri => 'http://www.soaplite.com/My/Examples', proxy => 'http://localhost/', # proxy => 'http://localhost/cgi-bin/soap.cgi', # local CGI server # proxy => 'http://localhost/soap', # local mod_perl serve +r # proxy => 'https://localhost/soap', # local mod_perl SECUR +E server on_fault => sub { my($soap, $res) = @_; die ref $res ? $res->faultdetail : $soap->transport->status, "\n"; } ; sub SOAP::Transport::HTTP::Client::get_basic_credentials { return ('us +er' => 'password') }; print getStateName(1), "\n\n"; print getStateNames(12,24,26,13), "\n\n"; print getStateList([11,12,13,42])->[0], "\n\n"; print getStateStruct({item1 => 10, item2 => 4})->{item2}, "\n\n"; # OR if you have SOAP::Lite object you can do # $s->transport->credentials('host_port', 'realm', 'user' => 'password +'); # see LWP::UserAgent for difference and more documentation # OR add user and password to your URL as follows: # proxy => 'http://user:password@localhost/'
lib/SOAP/Schema.pod
lib/SOAP/Transport.pod

Replies are listed 'Best First'.
Re^2: NTLM Authentication with SOAP::Lite not working
by perlchild (Acolyte) on Oct 28, 2008 at 13:52 UTC

    Thank you so very much Anonymous Monk. I added that

    sub SOAP::Transport::HTTP::Client::get_basic_credentials { return ('user' => 'password') };

    line and now it works perfectly!! I gave you a positive vote. Thanks again!!!

      I'm not sure how overriding the get_basic_credentials method solves your problem, but it seems like a bad idea. You should read the LWP::Authen::Ntlm documentation, it includes a clear example of usage.

        Something like this should work
        use LWP::UserAgent; use LWP::Debug; use SOAP::Lite on_action => sub { "$_[0]$_[1]"; }; import SOAP::Data 'name', 'value'; our $sp_endpoint = 'http://sp.example.com/sites/mysite/_vti_bin/lists. +asmx'; our $sp_domain = 'sp.example.com:80'; our $sp_username = 'DOMAIN\username'; our $sp_password = 'xyz'; if ($debug) { LWP::Debug::level('+'); SOAP::Lite->import(+trace => 'all'); } my @ua_args = (keep_alive => 1); my @credentials = ($sp_domain, "", $sp_usernam, $sp_password); my $schema_ua = LWP::UserAgent->new(@ua_args); $schema_ua->credentials(@credentials); $soap = SOAP::Lite->proxy($sp_endpoint, @ua_args, credentials => \@cre +dentials); $soap->schema->useragent($schema_ua); $soap->uri("http://schemas.microsoft.com/sharepoint/soap/");

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://719995]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2024-04-19 23:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found