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
I could not find any related issue.
Motivation and Context
We like to employ Tyk Gateway with a coprocess-based response middleware attached to an upstream responding with multiple Set-Cookie headers. We also require our middleware to modify other headers like Location. As is due to header synchronization only the first Set-Cookie header passes our middleware.
How This Has Been Tested
The PR contains a test.
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
[ ] I explained why this PR updates go.mod in detail with reasoning why it's required
[ ] I would like a code coverage CI quality gate exception and have explained why
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
I could not find any related issue.
Motivation and Context
We like to employ Tyk Gateway with a coprocess-based response middleware attached to an upstream responding with multiple Set-Cookie headers. We also require our middleware to modify other headers like Location. As is due to header synchronization only the first Set-Cookie header passes our middleware.
How This Has Been Tested
The PR contains a test.
Types of changes
Checklist