Hi, I found the answer on another perl mongers list.
I needed to swap the user and passwd. $r->user isn't available until after $r->get_basic_auth_pw has been called.
Cheers! George Matthew Whipple wrote:
It appears as though the user method only returns a value after successful authentication while you're trying to get it before. George wrote:Hello All, I'm having a problem with modperl and I can't figure out if it's my stupiditry or modperls'. I'd love somebody with some modperl foo to give me a hand. First, the config: rembox# cat /etc/redhat-release Red Hat Enterprise Linux ES release 4 (Nahant Update 4) rembox# rpm -qa | egrep 'http|mod_perl' httpd-2.0.52-32.3.ent httpd-devel-2.0.52-32.3.ent mod_perl-1.99_16-4.5 httpd-suexec-2.0.52-32.3.ent rembox# cat /etc/httpd/conf.d/perl.conf | egrep -v "^#" LoadModule perl_module modules/mod_perl.so Alias /perlremedy /opt/arsperl/scripts/htdocs/ PerlModule ModPerl::Registry PerlSwitches -I/opt/arsperl/scripts/htdocs/sec/ PerlModule Apache::compat <Directory /opt/arsperl/scripts/htdocs/*.pl> SetHandler perl-script PerlResponseHandler ModPerl::Registry Options ExecCGI PerlOptions +ParseHeaders </Directory> <Directory /opt/arsperl/scripts/htdocs/sec/> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlAuthenHandler My::AuthTest Options ExecCGI PerlOptions +ParseHeaders +GlobalRequest AuthType Basic AuthName "Remedy access" Require valid-user </Directory> <Location /perl-status> SetHandler perl-script PerlResponseHandler Apache::Status Order deny,allow Deny from all Allow from .your-domain.com </Location> Here's the contents of My::AuthTest: package My::AuthTest; use Data::Dumper; use Apache::Access; use Apache::Const -compile => qw(OK DECLINED HTTP_UNAUTHORIZED); use strict; sub handler { my $r = shift ; open (FOO, ">/tmp/foo.george"); # get the client-supplied credentials my $username = $r->user; my ($status, $password) = $r->get_basic_auth_pw; print FOO Dumper($username); print FOO Dumper($password); print FOO Dumper($status); close FOO; # only continue if Apache says everything is OK return $status unless $status == Apache::OK; # Until we figure how to get the username, lets just return OK. return Apache::OK; } 1; That handler lets the auth through so it's somewhat working. The problem is $username is undef so I can't actually test a login or anything. If I try get access to it from a script that's run after the auth (ie, the actual request), then it's not blank and I can see the username. I've also tried $r->connection->user; I've read a whole bunch of the docs, but what seems to be provided by RedHat bears to reference to what's on the interweb. Can somebody tell me what I'm missing? Cheers! George
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/
