in reply to SOLVED: Limit URL length with Dancer/Starman
Is there a way to throw a 414 and avoid this behavior when Dancer running under Starman?
Sure, add a check for URI size first in line :) http://search.cpan.org/dist/Dancer/lib/Dancer/Cookbook.pod#Default_route
(untested)
any qr{.{8190}.*} => sub { status '414'; # 414 - Request-URI Too Long };
Or make a Plack::Middleware to do the check
(untested)
package Plack::Middleware::ProhibitRequestUri8190; use parent qw(Plack::Middleware); use Plack::Util; sub call { my($self, $env) = @_; my $res = $self->app->($env); if( length $res->{REQUEST_URI} > 8190 ){ Plack::Util::response_cb($res, sub { my $res = shift; $res->[0] = 414; return; }); } }
plack middleware 414 request uri too large
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Limit URL length with Dancer/Starman ( Plack::Middleware::ProhibitRequestUri8190 )
by gsiems (Deacon) on Nov 14, 2013 at 20:47 UTC |