tyk icon indicating copy to clipboard operation
tyk copied to clipboard

fix: correctly sync multi-value response headers with coprocess middl…

Open sebkehr opened this issue 1 year ago • 0 comments

Hi,

as this is my first PR to your project please let me know what further information you need for a review.

Description

When synchronizing single- and multi-valued header representations (of coprocess-based middleware responses) the list of values for any multi-valued header is currently replaced by a list containing only the value given by its single-value representation effectively dropping all but the first value. Instead synchronization should affect/replace only the first value and retain possibly remaining values.

Related Issue

fixes #6411

Motivation and Context

We like to employ Tyk Gateway with a coprocess-based response middleware attached to an upstream possibly responding with multiple Set-Cookie headers. We also require our middleware to modify other headers like Location. As is due to synchronization only the first Set-Cookie header passes our middleware.

How This Has Been Tested

This PR adds a test which should fail without proposed fix.

Types of changes

  • [x] Bug fix (non-breaking change which fixes an issue)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)
  • [ ] Refactoring or add test (improvements in base code or adds test coverage to functionality)

Checklist

  • [x] I ensured that the documentation is up to date
  • [x] I explained why this PR updates go.mod in detail with reasoning why it's required
  • [x] I would like a code coverage CI quality gate exception and have explained why

sebkehr avatar Jul 08 '24 16:07 sebkehr