Hi.

Still around a new perl AAA module I'm writing, a question :

If I have a Location like so :

<Location /some/url>

  SetHandler jakarta-servlet
  SetEnvIf REQUEST_URI "\.(htm|web|css|gif|jpg|js|html?)$" no-jk

  PerlXXXHandler My::Module->some_method

  ...

</Location>

("jakarta-servlet" above means mod_jk --> Tomcat)
(and PerlXXXHandler being any kind of Perl HTTP Handler running soon enough)

The Question :
Is it possible, in the PerlXXXHandler, on a request-by-request base, to "disable" the jakarta-servlet handler, and install the following instead

  SetHandler modperl
  PerlResponseHandler My::Module->some_other_method

?

I know that I can do something like the above for regular static pages, and I use this already :
  $r->handler('modperl');
$r->set_handlers(PerlAuthzHandler => []); # stop authorization from running
  $r->set_handlers(PerlResponseHandler => \&_send_login_form);


However, when I try to do the same in a Location like the above, it seems that the jakarta-servlet handler runs anyway, and my PerlResponseHandler is never called.

The reason I want to do it that way, is that it allows me, in the substituted PerlResponseHandler, to do some stuff to the login page that I send, which would be more complicated to do via a simple redirect.
Or ?

(One thing I have not tried (nor researched) e.g., is to see if I can install both modperl and the jakarta-servlet as handlers, and disable the modperl handler if the condition is /not/ met.)

Thanks

Reply via email to