HTTP::Server::Simple::Authen(3) 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 <[email protected]>

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