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

Small test harness for testing basic auth

by merlyn (Sage)
on May 07, 2003 at 16:43 UTC ( #256291=snippet: print w/replies, xml ) Need Help??
Description: Corion was looking for a way to test BasicAuth in WWW::Mechanize::Shell's functional tests. Here's a snippet that fires up a tiny daemon that either demands authorization, or returns back a page saying what authorization was used. The port number varies (it always picks a free port)... it'll have to be captured for access.
use HTTP::Daemon;

my $d = HTTP::Daemon->new or die;
print "Please contact me at: <URL:", $d->url, ">\n";

while (my $c = $d->accept) {
  while (my $r = $c->get_request) {
    if (my ($user, $pass) = $r->authorization_basic) {
      $c->send_response(HTTP::Response->new(200, "OK", undef,
                        "user = <$user> pass = <$pass>"));
    } else {
      my $res = HTTP::Response->new(401, "Auth Required", undef,
                    "auth required");
      $res->www_authenticate("Basic realm=\"testing realm\"");
      $c->send_response($res);
    }
  }
  $c->close;
  undef($c);
}
Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://256291]
help
Chatterbox?
[Eily]: hum, tied scalar, generates a new array when derefed ? :D
[Corion]: choroba: Ah, when doing a shallow copy, I prefer [ @$var ] - I think \@$var might return the same reference instead of a reference to a fresh copy
[Corion]: perl -wle "my $ar = [1,2,3]; my $br=\@$ar; print qq($ar / $br)" confirms this to me
[karlgoethebier]: "discovered" this to sum an array: perl -E 'say scalar map {1 .. $_} (1..3);'
[Corion]: karlgoethebier: Hahaha :)

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (10)
As of 2017-09-26 08:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    During the recent solar eclipse, I:









    Results (293 votes). Check out past polls.

    Notices?