Hi,
I'm trying to migrate from MP1 to MP2 and having trouble with
get_basic_auth_pw and note_basic_auth_failure
which can not be found ..
<Location /db>
...
AuthName Database
AuthType Basic
PerlAuthenHandler Xdb::AuthOra2->handler
require valid-user
PerlResponseHandler Xdb::ApacheDB->handler
SetHandler perl-script
</Location>
package Xdb::AuthOra2;
use strict;
use Apache2::Access ();
#use Apache2::RequestUtil ();
use Apache2::Const -compile => qw (OK DECLINED REDIRECT
HTTP_UNAUTHORIZED);
use Apache2::ServerUtil ();
#use APR::URI ();
#use Apache2::RequestRec();
sub handler {
my $q = shift;
# get_basic_auth_pw not being found, temporarily comment out
#my ($status, $sent_pw) = $q->get_basic_auth_pw();
#return $status unless $status == Apache2::Const::OK;
my $sent_pw = 'scott';
my $user = 'tiger';
#my $user = $q->user();
unless ($user and $sent_pw) {
$q->note_basic_auth_failure;
#$q->log_reason("Both a username and password must be provided",
# $q->filename);
return Apache2::Const::HTTP_UNAUTHORIZED;
}
my $reason = authenticate($q, $user, $sent_pw);
if ($reason) {
$q->note_basic_auth_failure;
#$q->log_reason($reason, $q->filename);
return Apache2::Const::HTTP_UNAUTHORIZED;
}
return Apache2::Const::OK;
}
sub authenticate {
my $r = shift;
my $username = shift;
my $password = shift;
my $authok;
...
if ($authok != 1) {
return "Your request was not authorized.\n";
}
}
1;
__END__
this fails at run time with
Can't locate object method "note_basic_auth_failure" via package
"Xdb::AuthOra2" at /home/httpd/ph/Xdb/AuthOra2.pm line 34.
The module appears to be present
# find /usr/lib/perl5 -name Access.pm
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi/Apache2/Access.pm
# ls /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi/auto/
Apache2/Access
Access.bs Access.so
Any suggestions why the Apache2::Access functions are unavailable
would be most helpful, TIA.
John.