[IDEA] HTTP Listener: configurable size limit for the response headers it sends back
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- Une demi-journée
- Accessibilité débutants
- 45/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Java
- Étoiles
- 227
- Forks
- 81
- Merge moyen
- 3 j 6 h
- PR mergées (30 j)
- 15
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de OpenIntegrationEngine/engine
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#485 ·
Les mainteneurs répondent en général sous 2 jours
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
OpenIntegrationEngine/engine#478 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#355 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#347 ·
Les mainteneurs répondent en général sous 2 jours
-
Fix call-home in test runOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#313 ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de OpenIntegrationEngine/engine
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
apache/rocketmq-dashboard#7039 ·
Les mainteneurs répondent en général sous 3 jours
-
pdfium-drift
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
Stirling-Tools/JPDFium#176 ·
Les mainteneurs répondent en général sous 1 jour
-
Guidelines: redundant use cases, stale dev bundle after snapshot bumps, looking up snapshot APIPeut-être pris @totally-not-ai l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
vaadin/use-cases#441 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
hiero-ledger/hiero-consensus-node#27712 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 61/100
Vakore/ZappierGames#162 ·