package Apache::AuthAnon;

use strict;
use Apache::Constants ':common';

sub handler {
   my $r = shift;

   my($res, $sent_pwd) = $r->get_basic_auth_pw;
   return $res if $res; #decline if not Basic

   my $user = lc $r->connection->user;

   unless($user eq "anonymous" and $sent_pwd) {
       $r->note_basic_auth_failure;
       return AUTH_REQUIRED;
   }

   $r->warn("Anonymous: Passwd <$sent_pwd> Accepted");

   return OK;
}

1;
__END__

=head1 NAME

Apache::AuthAnon - Anonymous logon module

=head1 SYNOPSIS

AuthType Basic
AuthName Anonymous
PerlAuthenHandler Apache::AuthAnon
require valid-user

=head1 DESCRIPTION

This module was just an example for the Apache/Perl talk at the first
ORA Perl conference.
Still, it works, but mod_auth_anon provides more functionality.

=head1 SEE ALSO

mod_auth_anon, mod_perl(3), Apache(3)

=head1 AUTHOR

Doug MacEachern