That explains why we did not hit a problem earlier. I added a check for content-length being greater than zero in HttpClientDispatch and that broke content buffering for replaying for SPNego. If I undo my change we would be good for now. But, we should still clean up the code not to return content length value of -1. If anybody uses that code, like I did, we would hit problems.
On Fri, Jun 21, 2013 at 7:27 AM, Kevin Minder (JIRA) <[email protected]> wrote: > > [ > https://issues.apache.org/jira/browse/KNOX-80?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13690326#comment-13690326 > ] > > Kevin Minder commented on KNOX-80: > ---------------------------------- > > Currently we never write the Content-Length header to Hadoop. This is a very > difficult problem to solve due to the streaming nature of the gateway. The > headers are written before any entity body has been filtered. > >> Knox should not set HTTP request content length as -1 >> ----------------------------------------------------- >> >> Key: KNOX-80 >> URL: https://issues.apache.org/jira/browse/KNOX-80 >> Project: Apache Knox >> Issue Type: Bug >> Components: Server >> Affects Versions: 0.3.0 >> Reporter: Dilli Arumugam >> Fix For: 0.3.0 >> >> >> I see gateway-provider-identity-assertion- >> pseudo/src/main/java/org/apache/hadoop/gateway/filter/IdentityAssertionHttpServletRequestWrapper.java >> is returning -1 as Content-Length if contentType.startsWith( >> "application/x-www-form-urlencoded" ). >> This not standard compatible and I believe is error prone. >> Please see http 1.1 specs at >> http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13 >> Quoting from the specs: >> Any Content-Length greater than or equal to zero is a valid value. Section >> 4.4 describes how to determine the length of a message-body if a >> Content-Length is not given. >> So, we should not return content-length value as -1. >> If we rewrite the content and change the entity length in the process, we >> have to compute and set the correct content-length or try to leverage >> chunked encoding where you do not specify the content-length header. > > -- > This message is automatically generated by JIRA. > If you think it was sent incorrectly, please contact your JIRA administrators > For more information on JIRA, see: http://www.atlassian.com/software/jira
