+=head2 implement basic authentication
+
+This only works with PLP under mod_perl. For CGI installations, it's useless.
+
+ <:
+ use MIME::Base64;
+
+ BEGIN {
+ my $r = Apache->request;
+
+ my ($type, $login) = split / /, $r->header_in('Authorization');
+ my ($user, $pass) = split /:/, decode_base64 $login, 2;
+
+ unless ($user eq 'foo' and $pass eq 'bar') {
+ $header{Status} = '401 Authorization Required';
+ $header{WWW_Authenticate} = 'Basic realm="Top secret :)"';
+ print '<h1>Authorization Required</h1>';
+ exit;
+ }
+ }
+ :>
+
+(It is possible to use something similar with CGI, but it's not easy. Headers
+are communicated to your script via C<%ENV>, and having credentials in there
+would be insecure, so Apache removes them. To get C<$ENV{HTTP_AUTHORIZATION}>,
+you need to recompile Apache with -DSECURITY_HOLE_PASS_AUTHORIZATION, or use
+mod_rewrite to set the environment variable. Short answer: just use mod_perl.)
+