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/


Reply via email to