Provided by: libhttp-server-simple-authen-perl_0.04-1_all bug

NAME

       HTTP::Server::Simple::Authen - Authentication plugin for HTTP::Server::Simple

SYNOPSIS

         package MyServer;
         use base qw( HTTP::Server::Simple::Authen HTTP::Server::Simple::CGI);

         use Authen::Simple::Passwd;
         sub authen_handler {
             Authen::Simple::Passwd->new(passwd => '/etc/passwd');
         }

         sub handle_request {
             my($self, $cgi) = @_;
             my $user = $self->authenticate or return;
             ...
         }

         MyServer->new->run();

DESCRIPTION

       HTTP::Server::Simple::Authen is an HTTP::Server::Simple plugin to allow HTTP
       authentication. Authentication scheme is pluggable and you can use whatever Authentication
       protocol that Authen::Simple supports.

       You can use "authenticate" method whatever you want to authenticate the request. The
       method returns $username taken from the request if the authentication is successful, and
       "undef" otherwise. The code in "SYNOPSIS" requires authentication for all the requests and
       behaves just the same as Apache's "Require valid-user".

       The following code will explain more about conditioning.

         sub handle_request {
             my($self, $cgi) = @_;
             if ($cgi->path_info =~ m!/foo/!) {
                 my $user = $self->authenticate;
                 return unless defined($user) && length($user) == 8;
             }
             ...
         }

       This means all the requests to URL "/foo/" require to be authenticated, and usernames with
       8 chars long are authorized.

METHODS

       Your subclass has to override following methods to implement HTTP authentication.

       authen_handler
           Should return a valid Authen::Simple instance to authenticate HTTP request (Required).

       authen_realm
           Returns a string for Authentication realm to be shown in the browser's dialog box.
           Defaults to 'Authorized area'.

AUTHOR

       Tatsuhiko Miyagawa <miyagawa@bulknews.net>

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

SEE ALSO

       HTTP::Server::Simple, Authen::Simple