Re: Handler Chain (based on request method)
by aw other posts by this author
Oct 28 2009 10:13AM messages near this date
Re: Handler Chain (based on request method)
|
Re: Handler Chain (based on request method)
Aaron Dalton wrote:
> I'm using mod_perl and CGI::Application::Dispatch to create a RESTful
> web application. In the one resource, GETs should be sent to the
> default handler, and all other requests to the dispatcher. I have tried
> using <Limit> and <LimitExcept>, but they do not appear to be working.
> The handlers get processed regardless. Here is the current config:
>
> <Location /fs>
> <LimitExcept GET>
> Allow from All
> SetHandler perl-script
> PerlHandler BackCAD::Dispatch
> </LimitExcept>
> <Limit GET>
> Allow from All
> SetHandler default-handler
> </Limit>
> </Location>
>
> Is there some way to make this work? Do I need to write some sort of
> pre-dispatcher that checks the request method and returns DECLINED if
> it's GET? But if it's *not* GET, how do I then pass control on to the
> other dispatcher?
>
Just by curiosity, what happened to the suggestions I gave you on the
Apache httpd list (apart from the first one, which was to cross-post here) ?
Also, the reason why the above does not work is probably that the
<Limit...> sections are not really full containers. So your SetHandlers
above probably overwrite one another regardless, and only the last one
counts.
Another quick/cheap hack maybe :
> <Location /fs>
> Allow from All
> SetHandler perl-script
> PerlHandler BackCAD::Dispatch
> </Location>
then modify the code of BackCAD::Dispatch to return DECLINED if it's a GET.
Honestly, I've never tried that, and I don't know if then Apache would
process it with its default handler. But it's worth a try maybe.
Thread:
Aaron Dalton
Perrin Harkins
aw
aw
|