Fixed a problem where the value of commentURL and port is not double-quoted

This commit is contained in:
Trustin Lee 2009-03-13 12:39:22 +00:00
parent 9c8106948e
commit ede8316642
2 changed files with 14 additions and 2 deletions

View File

@ -104,16 +104,17 @@ public class CookieEncoder {
if (encodingVersion == 2) {
if (cookie.getCommentURL() != null) {
add(sb, CookieHeaderNames.COMMENTURL, QueryStringEncoder.encodeComponent(cookie.getCommentURL(), charset));
addQuoted(sb, CookieHeaderNames.COMMENTURL, QueryStringEncoder.encodeComponent(cookie.getCommentURL(), charset));
}
if(!cookie.getPorts().isEmpty()) {
sb.append(CookieHeaderNames.PORT);
sb.append((char) HttpCodecUtil.EQUALS);
sb.append((char) HttpCodecUtil.DOUBLE_QUOTE);
for (int port: cookie.getPorts()) {
sb.append(port);
sb.append((char) HttpCodecUtil.COMMA);
}
sb.setLength(sb.length() - 1); // Remove the trailing comma.
sb.setCharAt(sb.length() - 1, (char) HttpCodecUtil.DOUBLE_QUOTE);
sb.append((char) HttpCodecUtil.SEMICOLON);
}
if (cookie.isDiscard()) {
@ -132,6 +133,15 @@ public class CookieEncoder {
sb.append((char) HttpCodecUtil.SEMICOLON);
}
private void addQuoted(StringBuffer sb, String name, String val) {
sb.append(name);
sb.append((char) HttpCodecUtil.EQUALS);
sb.append((char) HttpCodecUtil.DOUBLE_QUOTE);
sb.append(val);
sb.append((char) HttpCodecUtil.DOUBLE_QUOTE);
sb.append((char) HttpCodecUtil.SEMICOLON);
}
private void add(StringBuffer sb, String name, int val) {
sb.append(name);
sb.append((char) HttpCodecUtil.EQUALS);

View File

@ -68,6 +68,8 @@ class HttpCodecUtil {
*/
static final byte COMMA = 44;
static final byte DOUBLE_QUOTE = '"';
private HttpCodecUtil() {
super();
}