Changeset f5dffb0 for apps/jetty


Ignore:
Timestamp:
Dec 5, 2017 9:46:11 PM (3 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
34b204c
Parents:
d4bafae
Message:

Susimail, Console, Jetty:

  • Adjust multipart size limits
  • Better handling of errors when multipart limits are exceeded
  • Fix multipart config for /configplugins
  • Test for total size limit in susimail
Location:
apps/jetty/java/src/net/i2p/servlet
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/jetty/java/src/net/i2p/servlet/RequestWrapper.java

    rd4bafae rf5dffb0  
    102102        /**
    103103         * @return List of request parameter names
     104         * @throws IllegalStateException if the request is too large
    104105         */
    105106        public Enumeration<String> getParameterNames() {
     
    118119                                } catch (IllegalStateException ise) {
    119120                                        log(ise);
     121                                        throw ise;
    120122                                }
    121123                        }
     
    140142        }
    141143
     144        /**
     145         * @throws IllegalStateException if the request is too large
     146         */
    142147        public String getContentType( String partName )
    143148        {
     
    154159                        } catch (IllegalStateException ise) {
    155160                                log(ise);
     161                                throw ise;
    156162                        }
    157163                }
     
    163169        }
    164170
     171        /**
     172         * @throws IllegalStateException if the request is too large
     173         */
    165174        public String getParameter( String name, String defaultValue )
    166175        {
     
    193202                                } catch (IllegalStateException ise) {
    194203                                        log(ise);
     204                                        throw ise;
    195205                                } finally {
    196206                                        if (in != null) try { in.close(); } catch (IOException ioe) {}
     
    205215        }
    206216
     217        /**
     218         * @throws IllegalStateException if the request is too large
     219         */
    207220        public String getFilename(String partName )
    208221        {
     
    219232                        } catch (IllegalStateException ise) {
    220233                                log(ise);
    221                         }
    222                 }
    223                 return result;
    224         }
    225 
     234                                throw ise;
     235                        }
     236                }
     237                return result;
     238        }
     239
     240        /**
     241         * @throws IllegalStateException if the request is too large
     242         */
    226243        public InputStream getInputStream(String partName )
    227244        {
     
    238255                        } catch (IllegalStateException ise) {
    239256                                log(ise);
     257                                throw ise;
    240258                        }
    241259                }
  • apps/jetty/java/src/net/i2p/servlet/filters/XSSFilter.java

    rd4bafae rf5dffb0  
    1010import javax.servlet.ServletResponse;
    1111import javax.servlet.http.HttpServletRequest;
     12import javax.servlet.http.HttpServletResponse;
    1213
    1314/**
     
    2627    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    2728        throws IOException, ServletException {
    28         chain.doFilter(new XSSRequestWrapper((HttpServletRequest) request), response);
     29        try {
     30            chain.doFilter(new XSSRequestWrapper((HttpServletRequest) request), response);
     31        } catch (IllegalStateException ise) {
     32            // Multipart form error, probably file too big
     33            // We need to send the error quickly, if we just throw a ServletException,
     34            // the data keeps coming and the connection gets reset.
     35            // This way we at least get the error to the browser.
     36            ((HttpServletResponse)response).sendError(413, ise.getMessage());
     37        }
    2938    }
    3039}
Note: See TracChangeset for help on using the changeset viewer.