Fixed a problem where CookieDecoder doesn't strip surrounding quotes for certain values

This commit is contained in:
Trustin Lee 2009-03-13 12:48:23 +00:00
parent 1912bfc81d
commit a26d1e4392

View File

@ -95,6 +95,7 @@ public class CookieDecoder {
comment = QueryStringDecoder.decodeComponent(value, charset);
}
else if (CookieHeaderNames.COMMENTURL.equalsIgnoreCase(name)) {
value = trimSurroundingQuotes(value);
commentURL = QueryStringDecoder.decodeComponent(value, charset);
}
else if (CookieHeaderNames.DOMAIN.equalsIgnoreCase(name)) {
@ -113,6 +114,7 @@ public class CookieDecoder {
version = Integer.valueOf(value);
}
else if (CookieHeaderNames.PORT.equalsIgnoreCase(name)) {
value = trimSurroundingQuotes(value);
String[] portList = value.split(COMMA);
ports = new int[portList.length];
for (int i1 = 0; i1 < portList.length; i1++) {
@ -144,4 +146,17 @@ public class CookieDecoder {
}
return cookies;
}
private String trimSurroundingQuotes(String value) {
if (value.length() >= 2) {
char firstChar = value.charAt(0);
char lastChar = value.charAt(value.length() - 1);
if ((firstChar == '"' || firstChar == '\'') &&
(lastChar == '"' || lastChar == '\'')) {
// Strip surrounding quotes.
value = value.substring(1, value.length() - 1);
}
}
return value;
}
}