Печенье JBoss 5.1.0 (JSF / Seam), взорванное акцентированными символами - PullRequest
2 голосов
/ 01 июня 2010

Я не вижу такого поведения в JBoss 4.2.3. Если я пытаюсь вызвать addCookie () для HttpServletResponse и в моем значении cookie есть символы с акцентом (например, ç), я получаю следующее исключение: java.lang.IllegalArgumentException: управляющий символ в значении cookie, рассмотрим BASE64, кодирующее ваше значение

Кто-нибудь знает, какие изменения в JBoss 5.1.0 могут вызывать эти проблемы?

1 Ответ

2 голосов
/ 02 июня 2010

Очевидно, они исправили ошибку, так что имя файла cookie теперь наконец соответствует RFC2109 .

Также см. javax.servlet.http.Cookie спецификацию API :

Имя должно соответствовать RFC 2109. Это означает, что оно может содержать только буквенно-цифровые символы ASCII и не может содержать запятые, точки с запятой или пробелы или начинаться с символа $. Имя куки не может быть изменено после создания.

C с cedille ç не является ASCII символом .


Обновление : извините, проблема касается файла cookie значение . Это связано с исправлением Tomcat (JBoss использует Tomcat под капотами). Это можно обойти, установив версию файла cookie следующим образом:

cookie.setVersion(1);

ç не является допустимым символом для значения cookie в соответствии со старой спецификацией Netscape, но соответствует более новой спецификации RFC2109. С помощью Cookie#setVersion() вы можете переключаться между ними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...