feat: hack: support the "Partitioned" flag on VCAP_ID cookies #396
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
Partitioned
flag is used for cookies that are set on web sites embedded via iframes. The cookie is then available only in combination of the host site and the embedded site.Golang's
http.Cookie
type does not yet support thePartitioned
flag, but Google Chrome is already testing mandatory support and rejecting/omitting cookies without it for 1% of users via A/B roll-out.The implementation wraps the
http.Cookie
and extends it with thePartitioned
field. This field is then used to forward the raw cookie string when creating the derived VCAP_ID cookies for sticky sessions.Once the Golang standard library supports the
Partitioned
flag, this wrapper can just be removed.A test that checks the
Unparsed
section of thehttp.Cookie
will ensure that the tests will fail once thePartitioned
flag is supported by the Golang standard library.Users of Safari and Google Chrome (currently 1% via A/B test, soon 100% of users) and websites that use iframes.
Instructions to functionally test the behavior change using operator interfaces (BOSH manifest, logs, curl, and metrics)
Expected result after the change
Current result before the change
Links to any other associated PRs
I have viewed signed and have submitted the Contributor License Agreement
I have made this pull request to the
main
branchI have run all the unit tests.
(Optional) I have run Routing Acceptance Tests and Routing Smoke Tests
(Optional) I have run CF Acceptance Tests