[ https://issues.apache.org/jira/browse/CMIS-844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14143227#comment-14143227 ]
Florian Müller commented on CMIS-844: ------------------------------------- I have a hunch that there are not many correctly behaving filters. In fact, OpenCMIS does only half of what it should do. It should also take the charset in the content type and the parameter "_charset_" into account. (I'm working on that.) I guess no filter is doing that today. If a filter does its own parsing anyway, it can save the original stream and provided it with a ServletRequestWrapper to OpenCMIS. That would allow OpenCMIS to do the decoding independently of the filter. > POSTHttpServletRequestWrapper should accommodate prior consumption of request > body by a filter > ---------------------------------------------------------------------------------------------- > > Key: CMIS-844 > URL: https://issues.apache.org/jira/browse/CMIS-844 > Project: Chemistry > Issue Type: Bug > Components: opencmis-server > Affects Versions: OpenCMIS 0.12.0 > Reporter: Ron Gavlin > Assignee: Florian Müller > > POSTHttpServletRequestWrapper should accommodate prior consumption of the > request body by a filter. > The 0.7.0 release provided this accommodation. This appears to have been > broken by the major post-0.7.0 refactoring. > The following POSTHttpServletRequestWrapper constructor modification fixes > the problem: > {code} > ... > if (isMultipart) { > ... > } else { > // form data processing > StringBuilder sb = new StringBuilder(); > InputStreamReader sr = new > InputStreamReader(request.getInputStream(), IOUtils.UTF8); > char[] buffer = new char[4096]; > int c = 0; > while ((c = sr.read(buffer)) > -1) { > sb.append(buffer, 0, c); > } > if (sb.length() < 3) { > @SuppressWarnings("unchecked") > Map<String, String[]> parameterMap = > request.getParameterMap(); > getParameterMap().putAll(parameterMap); > } else { > parseFormData(sb.toString()); > } > } > ... > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)