Hi There,
I read the following thread (with Geoff's comment in there too):
http://www.gossamer-threads.com/archive/mod_perl_C1/docs-dev_F5/a_little_feedback_P38941/
than I thought about Geoff's advice about using PerlAccess Handler and
came
up with this concoction (which works :-) )
Conf entry:
<Location /~xyz>
AuthName someauth
AuthType someauth
PerlAccessHandler Apache::MyModule
PerlAuthenHandler Apache::SuperAuthen
PerlAuthzHandler Apache::Xdoc
require valid-user
</Location>
------------------------------------------
package Apache::SuperAuthen;
use Apache::Constants qw(:common);
use Apache::Registry ();
use Apache::InHouseModule;
use Apache::MyModule;
sub handler {
my $r = shift;
if (Apache::MyModule::handler($r) == OK ||
Apache::InHouseModule::handler($r) == OK){
return OK;
}
return AUTH_REQUIRED;
}
1;
__END__
-------------------------------------------------------
However, I would be please if someone can explain what actually happens. I
dont "clearly" understand why it works :--)
Thanks,
Shashank.
On Fri, 30 May 2003, Geoffrey Young wrote:
>
> > When http://www.abc.com/~xyz gets called PerlAuthenHandler MyModule is
> > invoked. MyModule code checks for IP after reading a file from xyz
> > directory.
> > If the host ip matches with the one in the file, it returns OK and the
> > PerlAuthzHandler never gets called and the webpage is served to the user.
>
> you may want to try using a PerlAccessHander for checking the IP, then
> combine that with Satisfy Any (as opposed to the Satisfy All default).
>
> HTH
>
> --Geoff
>