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/