[IDEA] HTTP Listener: configurable size limit for the response headers it sends back
維護者通常 2 天內回覆
還沒有人認領這個 Issue。
評估
研究方向
Start with DefaultHttpConfiguration.createHttpConfig, the seam added by #393, and check where the Request Header Size setting is read in the HTTP Listener's settings. The response side is Jetty 9.4.57's HttpConfiguration.setResponseHeaderSize, which is never set there. Add a Response Header Size setting resolved through the template replacer at start, rejecting values that are not positive, then check that a 12000-byte response header returns 200 instead of 500.
由索引模型根據 Issue 內容生成。
描述
Is your feature request related to a problem? Please describe.
This is about the HTTP Listener source connector, where the engine is the HTTP server. #393 added Request Header Size to the listener's settings: the cap on the headers a client sends in. The headers the listener sends back in its response are still capped at Jetty's fixed 8192 bytes, because DefaultHttpConfiguration.createHttpConfig never sets responseHeaderSize.
That cap covers the whole response header block, not each header. On main (Jetty 9.4.57), 10 response headers of 500 bytes return 200 and 20 return a 500. The listener's Response Headers table and its response headers variable both feed into it, so an ordinary channel can cross it. The calling client then gets HTTP 500 Server Error with an 81-byte body and no reason. Same handler, one 12000-byte response header: 500 at 8192, 200 at 65536.
The HTTP Sender is out of scope. It is the client side, built on Apache HttpClient, and never goes through this Jetty setting.
Describe the solution you'd like
A Response Header Size setting in the HTTP Listener's settings, beside Request Header Size, handled the same way: resolved through the template replacer at start, and anything that doesn't resolve to a positive number fails the connector.
Rejecting zero and negatives matters more here. On 9.4.57 a responseHeaderSize of 0 or -1 closes the connection without sending a response, where 0 on the request side turns the limit off.
Describe alternatives you've considered
There is no setting to fall back on. Jetty 9.4.57's HttpConfiguration hardcodes 8192 for both header sizes and reads no system property for either, and the engine has no mirth.properties key for them.
Additional context
It goes in createHttpConfig, the seam from #393, so implementations built on it (the NovaMap TLS manager once tls-manager-plugin#44 is done) get it too.
- 主要語言
- Java
- 星號
- 227
- 分支
- 81
- 平均合併
- 3 天 6 小時
- 30 天內合併 PR
- 15
環境準備
- 提供 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
OpenIntegrationEngine/engine 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 68/100
OpenIntegrationEngine/engine#485 ·
維護者通常 2 天內回覆
-
enhancement
難度 2/5 1-3 小時 新手友好度 62/100
OpenIntegrationEngine/engine#478 · 1 則留言 ·
維護者通常 2 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
OpenIntegrationEngine/engine#355 ·
維護者通常 2 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
OpenIntegrationEngine/engine#347 ·
維護者通常 2 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
OpenIntegrationEngine/engine#313 ·
維護者通常 2 天內回覆
查看 OpenIntegrationEngine/engine 的全部 Issue
相似的 Issue
-
[Bug] dubbo.protocol.triple.max-message-size is only read from OS environment variables可能已有人在做 @CCCLL 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 72/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 64/100
hierynomus/sshj#1070 ·
-
難度 2/5 1-3 小時 新手友好度 84/100
intellij-elixir/intellij-elixir#4492 ·
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 77/100
-
難度 2/5 1-3 小時 新手友好度 76/100
quarkiverse/quarkus-openapi-generator#1796 · 1 則留言 ·