Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

How to select NTLM authentication with LWP

by tiedwu (Initiate)
on Oct 11, 2011 at 02:20 UTC ( #930728=perlquestion: print w/ replies, xml ) Need Help??
tiedwu has asked for the wisdom of the Perl Monks concerning the following question:

I am writing a perl script below that will get the web page source, looking into the response header from server, you can see it provides NTLM and Negotiate, but it seems always uses Negotiate, how can I select NTLM for authentication? I might use NTLM authentication with the way LWP::Useragent->credentials, but I don't know how to use Negotiate.
#!/usr/bin/perl use LWP::UserAgent; use HTTP::Request::Common; use LWP::Debug qw(+); use Authen::NTLM; use strict; use warnings; my $url = "http://10.1.1.1"; my $ua = new LWP::UserAgent(keep_alive => 1); $ua->credentials('10.1.1.1:80', '', 'user', 'passwd'); my $req = HTTP::Request->new(GET => $url); print "--Peforming request now...---------\n"; my $res = $ua->request($req); print "--Done with request ...---------\n"; # check the outcome if ($res->is_success) { print $res->content; } else { print "Error: " . $res->status_line . "\n"; print $res->headers()->as_string(), "\n"; } exit 0;
The output:
elvis@elvis-laptop:~/tmp/person$ ./d2.pl --Peforming request now...--------- --Done with request ...--------- Error: 401 Unauthorized Date: Tue, 11 Oct 2011 02:13:08 GMT Server: Microsoft-IIS/7.5 WWW-Authenticate: Negotiate WWW-Authenticate: NTLM Content-Length: 1181 Content-Type: text/html Client-Date: Tue, 11 Oct 2011 02:12:23 GMT Client-Peer: 10.1.1.2:80 Client-Response-Num: 1 Client-Warning: Unsupported authentication scheme 'negotiate' Title: 401 - δ��Ȩ: ���&#6 +5533;ƾ����Ч��&#6 +5533;��ʱ��ܾ X-Powered-By: ASP.NET
From the output, you can see it will redirect to 10.1.1.2 for authentication. I am not sure if it is the problem that authentication wasn't passed to next server. Any comments will be appreciated. the web page

Comment on How to select NTLM authentication with LWP
Select or Download Code
Re: How to select NTLM authentication with LWP
by Khen1950fx (Canon) on Oct 11, 2011 at 03:00 UTC
    You forgot ntlmv2(1). Try this:
    #!/usr/bin/perl use LWP::UserAgent; use HTTP::Request::Common; use LWP::Debug qw(+); use Authen::NTLM; use strict; use warnings; ntlmv2(1); my $url = "http://10.1.1.1"; my $ua = new LWP::UserAgent(keep_alive => 1); $ua->credentials('10.1.1.1:80', '', 'myDomain\\user', 'password'); my $req = GET $url; print "--Peforming request now...---------\n"; my $res = $ua->request($req); if ($res->is_success) { print $res->content; } else { print "Error: " . $res->status_line . "\n"; print $res->headers()->as_string(), "\n"; } exit 0;
      elvis@elvis-laptop:~/tmp/person$ ./d2.pl Undefined subroutine &main::ntlmv2 called at ./d2.pl line 10.
      It is weird. The module Authen::NTLM was installed at:
      elvis@elvis-laptop:~/tmp/person$ ls -al /usr/local/share/perl/5.10.1/A +uthen/NTLM.pm -r--r--r-- 1 root root 7116 2011-10-10 15:48 /usr/local/share/perl/5.1 +0.1/Authen/NTLM.pm
        I've updated the latest version NTLM-1.09 which provides ntlmv2(), it still doesn't work and it will not have a redirect to 10.1.1.2. I am confusing which one is workable, NTLM-1.09 made by Nick Bebout or NTLM-1.02 made by Mark J Bush? The output:
        elvis@elvis-laptop:~/tmp/person$ ./d2.pl --Peforming request now...--------- --Done with request ...--------- Error: 401 Unauthorized Date: Tue, 11 Oct 2011 03:43:53 GMT Server: Microsoft-IIS/6.0 WWW-Authenticate: Negotiate WWW-Authenticate: NTLM Content-Length: 1327 Content-Type: text/html Client-Date: Tue, 11 Oct 2011 03:47:44 GMT Client-Peer: 10.1.1.1:80 Client-Response-Num: 1 Client-Warning: Unsupported authentication scheme 'negotiate' Title: ��δ����Ȩ&#6 +5533;鿴��ҳ X-Powered-By: ASP.NET

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://930728]
Approved by planetscape
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (9)
As of 2014-09-30 18:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (381 votes), past polls