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