Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot get value from cookie in Java. Value contains commas.

Tags:

java

cookies

I have problem with getting value from cookie that contains commas. It returns not full string but string cut off to first comma. For example:

// cookie value = var1,var2,var3
String cookieVal = cookie.getValue();
//cookieVal now is "var1" instead of "var1,var2,var3"

and

// cookie value = var1=var2=var3
String cookieVal = cookie.getValue();
//cookieVal now is "var1=var2=var3"

What am i doing wrong.

like image 284
Krzysiek Grzembski Avatar asked Feb 09 '10 08:02

Krzysiek Grzembski


People also ask

Can a cookie value Contain comma?

So no, commas are not allowed in cookie values, and no browsers actually implemented that.

Can cookie values have spaces?

The cookie value string can use encodeURIComponent() to ensure that the string does not contain any commas, semicolons, or whitespace (which are disallowed in cookie values).

How do you handle white space in cookie values?

According to RFC 2109, "HTTP State Management Mechanism", white space in cookie values must be encoded or the entire value must be quoted. The set-cookie function does not automatically encode white space characters or add quotes to a value string containing white space.


1 Answers

Take a look at the Cookie Documentation. It says :

This class supports both the Version 0 (by Netscape) and Version 1 (by RFC 2109) cookie specifications. By default, cookies are created using Version 0 to ensure the best interoperability.

And if you see the setValue method you will find this

With Version 0 cookies, values should not contain white space, brackets, parentheses, equals signs, commas, double quotes, slashes, question marks, at signs, colons, and semicolons. Empty values may not behave the same way on all browsers.

EDIT: Just read the google thing. Maybe try setting the version to 1 and see how it works.

like image 173
Lombo Avatar answered Oct 13 '22 00:10

Lombo