Skip to content

Bug for parse cookies from header #341

@LywLover

Description

@LywLover

Describe the bug
If the cookies contain "+" or "=" , the cookies can't be parse correct

To Reproduce
I got a respon header like this
Set-Cookie: _id=A528A0D64DA61CB01241EF6E18E4D675170DDB56CB430000AF58625E920CF940~pl1ZYwDDdoAnfY3RtqZ2Ti1MYOf7Q8jRrFQLneSGK7qQoUX1GHW/xDcqweGyclm5rm/g/YFCV3ohuHoz2oad5M0MX9Ru9V7bFr2s08d1lHxbn39gw71AI+ZVejq5FpMHKBzyjoBGG6NY6xYVTwP9NHo14SY0CXs60k2UTpJsOTNzAHIZaedg7o6R/8qyAQ8GF25K2o773pFLrYtjgKHohkk5ukz/yEGQitq8NgC5hiqX0=; expires=Fri, 06 Mar 2020 16:05:35 GMT; max-age=7200; path=/; domain=xxx.com; HttpOnly

Then
println(it.cookies) [_id=A528A0D64DA61CB01241EF6E18E4D675170DDB56CB430000AF58625E920CF940~pl1ZYwDDdoAnfY3RtqZ2Ti1MYOf7Q8jRrFQLneSGK7qQoUX1GHW/xDcqweGyclm5rm/g/YFCV3ohuHoz2oad5M0MX9Ru9V7bFr2s08d1lHxbn39gw71AI ZVejq5FpMHKBzyjoBGG6NY6xYVTwP9NHo14SY0CXs60k2UTpJsOTNzAHIZaedg7o6R/8qyAQ8GF25K2o773pFLrYtjgKHohkk5ukz/yEGQitq8NgC5hiqX0;Path=/;Domain=xxx.com;Max-Age=7200;HttpOnly]

Expected behavior
The right cookie value should be the same as header ,but it replace "+" to " " and removed "="

I think the problem is the URLDecoder.decode can't parase "+" correct and you use "=" as split character

And I have a test on it
https://play.kotlinlang.org/#eyJ2ZXJzaW9uIjoiMS4zLjMwIiwiY29kZSI6ImZ1biBtYWluKCkge1xuICAgIHZhbCBzdHIgPSBcIkR6TWh4SnI4VW9MRGs4K1ZacStsR3UyNT1cIlxuICAgIHZhbCB2ID0gamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoc3RyLCBcInV0Zi04XCIpXG4gICAgcHJpbnRsbih2KVxuICAgIHByaW50bG4oXCJoZWxsb3dvcmxkXCIpXG59IiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiJ9

Environmental Data:

  • Java 8
  • Version 3.6.00

Additional context
related code
https://github.com/Kong/unirest-java/blob/master/unirest/src/main/java/kong/unirest/Cookie.java#L67-L92

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugOh Noes! A bug

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions