Как правильно читать куки-файлы Tomcat с указанными значениями в ASP? - PullRequest
3 голосов
/ 09 мая 2011

У нас есть сайт, который интегрирует веб-приложения Java под Tomcat со страницами ASP, включая обмен информацией в файлах cookie в традиционном формате ключ / значение ASP:

Cookie: foo=a=b&c=d; ...

Начиная с Tomcat 5.5.26, обработка файлов cookieбыл немного изменен, в результате чего наше значение cookie теперь заключено в кавычки, чего раньше не было:

Cookie: foo="a=b&c=d"; ...

Однако у нас есть ASP-код, который также читает этот cookie и ожидаетзначения в нем должны быть проанализированы таким образом:

Response.Write("["+Request.Cookies("foo")("c")+"]");

Теперь это не может привести к ожидаемому результату:

[d"]

Я читал об использовании:

javax.servlet.http.Cookie#setVersion(int)

чтобы изменить это поведение, но это, похоже, не то, что нужно здесь.Я знаю, что указанное значение более «правильное», но попробуйте сказать ASP, что ... Есть ли какая-то хитрость, которую я пропустил, чтобы заставить ASP (или Tomcat) играть хорошо?ТИА как всегда.

1 Ответ

2 голосов
/ 08 декабря 2011

Цитируемые файлы cookie соответствуют версии cookie> 1 или 2 Некотируемые файлы cookie действительны для версии cookie 0

Если вы посмотрите очень интересное обсуждение на tomcats bugzilla: https://issues.apache.org/bugzilla/show_bug.cgi?id=44679Кажется, есть несколько способов настройки поведения файлов cookie tomcats.

Если у вас есть контроль над настройкой файлов cookie для tomcat, то это будет способ переключиться на файлы без кавычек:

Cookie cookie = new Cookie(COOKIENAME,COOKIEVALUE);
cookie.setVersion(0);

Этоcookie будет сохраняться без кавычек, но также будет ограничивать вас меньшим набором символов и дополнительными правилами, такими как отсутствие пробелов в начале / конце.

...