On 10/24/2012 09:21 AM, samuel.feren...@barclays.com wrote:
Hi,

Is it possible to authenticate the user on Windows without entering the 
password?

Our script uses LWP and is talking to a webserver that requires authentication. 
The code is as follows:


Here's an example of a trivial subclass of LWP::UserAgent that uses Net::Netrc to store passwords in "not the script"

package Cluon::TestAgent;

use parent 'LWP::UserAgent';
use URI;
use Net::Netrc;

sub get_basic_credentials {
  my $class = shift;
  my $realm = shift; # ignore this for trivial demo
  my $uri = URI->new(shift);
  if (my $tuple = Net::Netrc->lookup($uri->host)) {
    return ($tuple->login, $tuple->password);
  }
  return;
}

#
# instantiate a new Cluon::TestAgent and use it to get a protected
# resource
#
sub test_driver {
  my $class = shift;
  my $ua = $class->new();

  my $response = $ua->get('http://lawrence.cluon.com/');

  die $response->status_line
    unless $response->is_success;

  print "Got it\n\n";

}

1;

You'll need to createa  .netrc file in your $HOME that looks like

machine lawrence.cluon.com login testuser password testpass

And you can test the script with

perl -MCluon::TestAgent -le "Cluon::TestAgent->test_driver"

(This, of course, will only work if TestAgent.pm is under a directory named Cluon)

Expanding the TestAgent to use something else like .authinfo or your platform's favorite keyring store is an exercise for the reader :)

--Lawrence

Reply via email to