Hello Geoffrey, Thank you for your answer; but I have to ask you for more help as I neither use a pre-build version nor work with subclassing. The handler code is very simple:
package Our::Auth; use strict; use Apache; use Apache::Constants qw(:common); use mod_perl (); sub authen_handler { my $r = shift; my ($res, $sent_pw) = $r->get_basic_auth_pw; return $res if $res != OK; my $user = $r->connection->user; if (!$user || !$sent_pw) { return AUTH_REQUIRED; } return OK; } 1; This code works OK in RedHat but cannot find "get_basic_auth_pw" in SGI. Still, my feeling is that that something simple but imporant is omitted in the code. > that's right. are you rolling your own on SGI or using a pre-compiled > package? if the package is pre-compliled you might want to make sure that > it's mod_perl 1.2X and not mod_perl 1.99_XX, which is the precursor to > mod_perl 2.0 and a completely different beast. I didn't use pre-compiled package but built it from source (Apache 1.3.31+ PHP 4.3.8 + mod_perl 1.29). Maybe the following can be important: compilation is 32-bit (with "-o32" flag), otherwise Apache build complains of incompatible libraries. In fact, I had to configure mod_perl using a Shell-script: #!/bin/sh CC="cc -o32" \ perl Makefile.PL PERL_LOG=1 PERL_CHILD_INIT=1 \ PERL_AUTHEN=1 PERL_ACCESS=1 PERL_AUTHZ=1 \ PERL_CLEANUP=1 PERL_STACKED_HANDLERS=1 \ USE_APACI=1 APACI_ARGS='--with-layout=Apache --prefix=/apache --activate-module=src/modules/php4/libphp4.a' Still, there were no error messages concerning 32-to-64 incompatibility, so it may be not relevant. > well, that message says that it can't find get_basic_auth_pw() via > Our::Auth. it should be looking for it via the Apache class, not > Our::Auth. What checks can I do to see if Apache class is seen by mod_perl? Thank you, Marina Markus [EMAIL PROTECTED] On Mon, 1 Nov 2004, Geoffrey Young wrote: > > > Marina Markus wrote: > > Hello, > > > > With Geoffrey Young's generous help I have successfully implemented > > authentication using my own handler subroutine defined as PerlAuthenHandler. > > :) > > > > This works OK in RedHat but not on SGI (IRIX 6.2). Call to the handler fails > > complaining that it cannot find request object methods, be it "connection" > > or "get_basic_auth_pw", saying, for example: > > > > [Mon Nov 1 12:54:13 2004] [error] Can't locate object method > > "get_basic_auth_pw" via package "Our::Auth" at > > /usr/local/lib/perl5/site_perl/5.005/Our/Auth.pm line 16, <DATA> chunk > > 225.\n > > well, that message says that it can't find get_basic_auth_pw() via > Our::Auth. it should be looking for it via the Apache class, not Our::Auth. > if you're looking for it via $r blessed into Our::Auth you need to make > sure that you're doing subclassing properly for mod_perl (which is a bit > different than normal perl subclasses). see > > http://www.modperlcookbook.org/code/ch10/Cookbook/Apache.pm > > for an example. > > if you're not trying any subclassing tricks then something is definitely > amuck - $r should be an 'Apache' object (or 'Apache::RequestRec' in mp2) > when you call $r->note_basio_auth_pw. > > > > > These methods should come with the installation of mod_perl, shouldn't they? > > yes. > > > A bare installation of Apache 1.3.31+mod_perl 1.29 on a RedHat works OK > > without demanding any addition Perl modules to be installed. > > that's right. are you rolling your own on SGI or using a pre-compiled > package? if the package is pre-compliled you might want to make sure that > it's mod_perl 1.2X and not mod_perl 1.99_XX, which is the precursor to > mod_perl 2.0 and a completely different beast. > > > > > Maybe the ancient Perl version (5.005) is to blame? > > nope. > > as I said, based on the message above something is amuck that looks to have > nothing to do with mod_perl, but rather the way that get_basic_auth_pw() is > being invoked. > > HTH > > --Geoff > > -- > Report problems: http://perl.apache.org/bugs/ > Mail list info: http://perl.apache.org/maillist/modperl.html > List etiquette: http://perl.apache.org/maillist/email-etiquette.html > > -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html