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);
}
|