Re: Subclassing Apache::AuthDBI

Tosh Cooey <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Organization Twelve Hundred Group LLC
Message-ID <[email protected]>
I'm enjoying talking to myself here all month!  So the solution to my 
problem below...

Yay to MidLifeXis on PerlMonks for pointing out the problem.

When MyAuthDBI::authen is called then PERL looks to that specific object 
for the function rather than traversing up the parent tree. 
MyAuthDBI->authen would call the function but the original 
Apache::AuthDBI::authen expects $r as the first argument and not $self 
and so a new set of problems arises.

So the easy solution to this problem is:

package MyAuthDBI;
use base "Apache::AuthDBI";
sub authen {
   my ($r) = @_;
   Apache::AuthDBI::authen($r);
}
1;

To answer my final question, yes I was doing something glaringly dumb :)

Tosh


Tosh Cooey wrote:
> I'm trying to subclass Apache::AuthDBI by doing:
> 
> package MyAuthDBI;
> 
> use base "Apache::AuthDBI";
> 1;
> 
> 
> Then in apache.conf
> 
> PerlModule MyAuthDBI
> <Location /test>
>   AuthType Basic
>   PerlAuthenHandler MyAuthDBI::authen
> ...
> </Location>
> 
> I'm getting the following error:
> 
> ...failed to resolve handler `MyAuthDBI::authen': Can't locate 
> MyAuthDBI/authen.pm in @INC...
> 
> Which kinda makes sense as an error message since the handler is 
> declared MyAuthDBI::authen and not MyAuthDBI->authen and yet it works 
> just fine if I allow Apache::AuthDBI to handle the Authen.
> 
> Is it non trivial to subclass Apache::AuthDBI?  Am I doing something 
> glaringly dumb?
> 
> Thanks again...
> 
> Tosh
> 

-- 
McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.