remm 2003/11/15 01:45:02 Modified: catalina/src/share/org/apache/coyote/tomcat5 CoyoteConnector.java CoyoteRequest.java LocalStrings.properties Log: - Add a limit to the size of a POST which will be processed using getParameter (which does allocate a significant amount of objects). Revision Changes Path 1.32 +36 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteConnector.java Index: CoyoteConnector.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteConnector.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- CoyoteConnector.java 10 Nov 2003 21:08:09 -0000 1.31 +++ CoyoteConnector.java 15 Nov 2003 09:45:02 -0000 1.32 @@ -272,10 +272,12 @@ */ private boolean secure = false; + /** For jk, do tomcat authentication if true, trust server if false */ private boolean tomcatAuthentication = true; + /** * The string manager for this package. */ @@ -291,6 +293,7 @@ */ private boolean disableUploadTimeout = false; + /** * Maximum number of Keep-Alive requests to honor per connection. */ @@ -298,6 +301,13 @@ /** + * Maximum size of a POST which will be automatically parsed by the + * container. 2MB by default. + */ + private int maxPostSize = 2 * 1024 * 1024; + + + /** * Has this component been initialized yet? */ private boolean initialized = false; @@ -763,6 +773,31 @@ this.maxProcessors = maxProcessors; setProperty("maxThreads", String.valueOf(maxProcessors)); + + } + + + /** + * Return the maximum size of a POST which will be automatically + * parsed by the container. + */ + public int getMaxPostSize() { + + return (maxPostSize); + + } + + + /** + * Set the maximum size of a POST which will be automatically + * parsed by the container. + * + * @param maxPostSize The new maximum size in bytes of a POST which will + * be automatically parsed by the container + */ + public void setMaxPostSize(int maxPostSize) { + + this.maxPostSize = maxPostSize; } 1.18 +8 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteRequest.java Index: CoyoteRequest.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteRequest.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- CoyoteRequest.java 18 Sep 2003 22:50:08 -0000 1.17 +++ CoyoteRequest.java 15 Nov 2003 09:45:02 -0000 1.18 @@ -2320,6 +2320,10 @@ int len = getContentLength(); if (len > 0) { + if (len > ((CoyoteConnector) connector).getMaxPostSize()) { + log(sm.getString("coyoteRequest.postTooLarge")); + return; + } try { byte[] formData = null; if (len < CACHED_POST_LEN) { 1.2 +1 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/LocalStrings.properties,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LocalStrings.properties 19 Apr 2003 19:00:43 -0000 1.1 +++ LocalStrings.properties 15 Nov 2003 09:45:02 -0000 1.2 @@ -41,6 +41,7 @@ coyoteRequest.listenerStart=Exception sending context initialized event to listener instance of class {0} coyoteRequest.listenerStop=Exception sending context destroyed event to listener instance of class {0} coyoteRequest.attributeEvent=Exception thrown by attributes event listener +coyoteRequest.postTooLarge=Parameters were not parsed because the size of the posted data was too big. Use the maxPostSize attribute of the connector to resolve this if the application should accept large POSTs. #
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]