tree c182a126f4fd8bc930f785c1701c606af6a6e13f
parent 5d0369d7847bb749afca6029ea53c711a0e72244
author Jim Jagielski <jim@apache.org> 1324391688 +0000
committer Jim Jagielski <jim@apache.org> 1324391688 +0000

* Improve performance of parameter processing
      <add>
        Improve performance of parameter processing for GET and POST requests.
        Also add an option to limit the maximum number of parameters processed
        per request. This defaults to 10000. Excessive parameters are ignored.
        Note that <code>FailedRequestFilter</code> can be used to reject the
        request if some parameters were ignored. (markt/kkolinko)
      </add>
      <add>
        New filter <code>FailedRequestFilter</code> that will reject a request
        if there were errors during HTTP parameter parsing. (kkolinko)
      </add>
  Before the patch:
  Should be created by patch tool automatically, but just to be sure:
    mkdir container/catalina/src/share/org/apache/catalina/filters
    svn add container/catalina/src/share/org/apache/catalina/filters
  Apply patch:
    http://people.apache.org/~kkolinko/patches/2011-11-17_tc55_parameters-v5.patch
  After the patch:
    svn propset svn:eol-style native  connectors/util/java/org/apache/tomcat/util/http/LocalStrings.properties
    svn propset svn:eol-style native  container/catalina/src/share/org/apache/catalina/filters/FailedRequestFilter.java
    svn propset svn:eol-style native  container/webapps/docs/config/filter.xml
  +1: kkolinko, markt, funkman, jim
  -1:



git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc5.5.x/trunk@1221282 13f79535-47bb-0310-9956-ffa450edef68
