{"action":"created","issue":{"url":"https://api.github.com/repos/Nike-Inc/riposte/issues/29","repository_url":"https://api.github.com/repos/Nike-Inc/riposte","labels_url":"https://api.github.com/repos/Nike-Inc/riposte/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/Nike-Inc/riposte/issues/29/comments","events_url":"https://api.github.com/repos/Nike-Inc/riposte/issues/29/events","html_url":"https://github.com/Nike-Inc/riposte/issues/29","id":214505171,"number":29,"title":"Proxy endpoints force chunked transfer-encoding","user":{"login":"rabeyta","id":7971757,"avatar_url":"https://avatars3.githubusercontent.com/u/7971757?v=3","gravatar_id":"","url":"https://api.github.com/users/rabeyta","html_url":"https://github.com/rabeyta","followers_url":"https://api.github.com/users/rabeyta/followers","following_url":"https://api.github.com/users/rabeyta/following{/other_user}","gists_url":"https://api.github.com/users/rabeyta/gists{/gist_id}","starred_url":"https://api.github.com/users/rabeyta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rabeyta/subscriptions","organizations_url":"https://api.github.com/users/rabeyta/orgs","repos_url":"https://api.github.com/users/rabeyta/repos","events_url":"https://api.github.com/users/rabeyta/events{/privacy}","received_events_url":"https://api.github.com/users/rabeyta/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-03-15T19:47:27Z","updated_at":"2017-03-15T20:20:08Z","closed_at":null,"body":"This issue is around the StreamingAsyncHttpClient. When a proxy endpoint is being used, the content-length header is always removed and transfer-encoding of 'chunked' is always added regardless of what the caller passes in.\r\n\r\nThe scope of this issue is to remove this behavior and enable the client to set whatever headers they want and the proxy endpoints will not modify the request and pass it through to the downstream host unmodified."},"comment":{"url":"https://api.github.com/repos/Nike-Inc/riposte/issues/comments/286866332","html_url":"https://github.com/Nike-Inc/riposte/issues/29#issuecomment-286866332","issue_url":"https://api.github.com/repos/Nike-Inc/riposte/issues/29","id":286866332,"user":{"login":"nicmunroe","id":15578205,"avatar_url":"https://avatars3.githubusercontent.com/u/15578205?v=3","gravatar_id":"","url":"https://api.github.com/users/nicmunroe","html_url":"https://github.com/nicmunroe","followers_url":"https://api.github.com/users/nicmunroe/followers","following_url":"https://api.github.com/users/nicmunroe/following{/other_user}","gists_url":"https://api.github.com/users/nicmunroe/gists{/gist_id}","starred_url":"https://api.github.com/users/nicmunroe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicmunroe/subscriptions","organizations_url":"https://api.github.com/users/nicmunroe/orgs","repos_url":"https://api.github.com/users/nicmunroe/repos","events_url":"https://api.github.com/users/nicmunroe/events{/privacy}","received_events_url":"https://api.github.com/users/nicmunroe/received_events","type":"User","site_admin":false},"created_at":"2017-03-15T20:20:08Z","updated_at":"2017-03-15T20:20:08Z","body":"Good catch. As long as there are solid tests showing that downstream systems receive the payloads correctly from a bytes-on-the-wire perspective in the following three cases I'm ok with (actually really happy about) this change:\r\n\r\n1. Incoming request to the proxy/router endpoint has a chunked transfer-encoding.\r\n2. Incoming request is *not* chunked, but has a content-length header instead.\r\n3. Incoming request has not defined either transfer-encoding or content-length.\r\n\r\nChunked incoming requests should stay chunked for the downstream system. Non-chunked incoming requests should stay non-chunked for the downstream system. And payloads should arrive at the downstream system correctly (i.e. identical to the original request payload)."}}
{"actor":{"display_login":"nicmunroe"}}