So here comes the most actual code:

Submitting it to CPAN would be fine!

------------------------------------------------

package Apache::AuthMulti;

# Stathy G. Touloumis
# Marcel M. Weber
# Darren Chamberlain
#
# Version 0.01-2 / 13.02.2002 / Marcel M. Weber

use     strict;
use     Apache::Constants qw(:common);

sub handler {
         my $r = shift;
         my($res, $sent_pw) = $r->get_basic_auth_pw;
         return $res if $res != OK;

         my @auth_modules=$r->dir_config->get("AuthModules");

         for my $am (@auth_modules)
         {
         load($am);
         if ($@){
                 $r->log_reason("Error loading module '$am':$@");
                 next;
         }

         my $handler = $am->can('handler') or next;
         if ($handler->($r) == OK) {
                 $r->warn("$am return OK");
                 return OK;
         }

         $r->log_reason("$am not OK");
         }

         $r->note_basic_auth_failure;
         $r->log_reason("none of the handlers could authenticate this 
user");
         return AUTH_REQUIRED;
}

sub load {
     my $module=@_[0];
     $module  =~ s[::][$Config{'path_sep'}]go;
     $module .= '.pm';

     eval { require $module; };

     return $@ ? 1 : 0;
}

1;
__END__

-----------------------------------------------------------------------------

Am Mittwoch den, 13. Februar 2002, um 21:42, schrieb Stathy G. Touloumis:

>
>
>>> I would suggest changing the PerlSetVar variables
>>> to actual apache configuration directives which would change this :
>>>
>>> my @auth_modules=$r->dir_config->get("AuthModules");
>>>
>>> I don't have an immediate patch for this but have done it before.
>>> If you would like me to work on this code no prob, otherwise check
>>> the eagle book for some samples if unfamiliar.
>>
>> *nod*  I'm not sure that the syntax would work; $r->dir_config()
>> would probably return an arrayref, and such; this needs to be
>> tested.
>

It returns a arrayref, as far as I experienced. Well I'm really new to 
mod_perl
and my eagle book waits still in  the library to be bought... But why is 
this
version not nice?

-------------------

Marcel

PGP / GPG Key:  http://www.ncpro.com/GPG/mmweber-at-ncpro-com.asc

Reply via email to