{"action":"opened","issue":{"url":"https://api.github.com/repos/eclipse/vert.x/issues/1506","repository_url":"https://api.github.com/repos/eclipse/vert.x","labels_url":"https://api.github.com/repos/eclipse/vert.x/issues/1506/labels{/name}","comments_url":"https://api.github.com/repos/eclipse/vert.x/issues/1506/comments","events_url":"https://api.github.com/repos/eclipse/vert.x/issues/1506/events","html_url":"https://github.com/eclipse/vert.x/issues/1506","id":164807917,"number":1506,"title":"Incorrect parsing of http/2 headers (e.g. multiple Cookie headers)","user":{"login":"creativeprogramming","id":954291,"avatar_url":"https://avatars.githubusercontent.com/u/954291?v=3","gravatar_id":"","url":"https://api.github.com/users/creativeprogramming","html_url":"https://github.com/creativeprogramming","followers_url":"https://api.github.com/users/creativeprogramming/followers","following_url":"https://api.github.com/users/creativeprogramming/following{/other_user}","gists_url":"https://api.github.com/users/creativeprogramming/gists{/gist_id}","starred_url":"https://api.github.com/users/creativeprogramming/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/creativeprogramming/subscriptions","organizations_url":"https://api.github.com/users/creativeprogramming/orgs","repos_url":"https://api.github.com/users/creativeprogramming/repos","events_url":"https://api.github.com/users/creativeprogramming/events{/privacy}","received_events_url":"https://api.github.com/users/creativeprogramming/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-07-11T10:38:42Z","updated_at":"2016-07-11T10:38:42Z","closed_at":null,"body":"### Version\r\n\r\n* vert.x core: 3.3.0\r\n* vert.x web: 3.3.0\r\n* SSL and ALPN with netty-tncnative: 1.1.3\r\n* netty: 4.1.1\r\n\r\n### Context\r\n\r\nIf a client got multiple cookies to send in a request, and ALPN is on and the request is issued with HTTP/2, the vert.x server cannot read correctly the cookie header nor the `CookieHandler` works fine.\r\n\r\nIt gets just one Cookie of many (a random one as they're sent in random order by browser as per specs)\r\n\r\nThis is due to the fact that Http/2 sends cookies in multiple COOKIE headers and not anymore in a single semicolon separated field.\r\n\r\nPlease add conversion in a single ; separated header using Netty's  `HttpConversionUtil` as Netty's  has already provided that solution to this issue, see: https://github.com/netty/netty/issues/4457\r\n\r\n\r\n### Steps to reproduce\r\n\r\n1. Enable HTTPS and ALPN on a Vert.x server\r\n2. Use latest version of google chrome and ensure you're negotiating `http/2` (e.g. check with _'http/2 and spdy indicator extension'_)\r\n3. Using the _'cookie inspector extension'_ or whatever, add some cookie name-value pairs to simulate a request with multiple cookies set\r\n4. Refresh the test page and debug if you can get all the test cookie pairs at server using a `CookieHandler` or with a raw `logger.info(\"All headers \"+  new JsonArray(request.headers().entries()).encodePrettily());`\r\n5. You'll get just 1 cookie of the many, if you repeat the request or delete some cookie you can have it in random rotation, but never more than one cookie  per request is readable to vert.x\r\n\r\n\r\n### Extra\r\n\r\nThis issue can cause authentication/session issues too\r\n"}}
{"actor":{"display_login":"creativeprogramming"}}