Tomcat LegacyCookieProcessor усекает значение cookie со специальными символами - PullRequest
0 голосов
/ 11 октября 2019

Сейчас я использую Tomcat 8.0.49 с дополнительными параметрами в файле setenv:

-Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_EQUALS_IN_VALUE=true -

Dorg.apache.catalina.connector.Response.ENFORCE_ENCODING_IN_GET_WRITER=false -

Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true

и все работает нормально - я могупоставить символы '@' или '=' в значения куки, однако я хочу обновить Tomcat до версии 9, но в tomcat 8.5.0

'Парсер cookie HTTP по умолчанию былизменено на org.apache.tomcat.util.http.Rfc6265CookieProcessor '

, и после обновления моего Tomcat все значения cookie содержат' = 'или' @ 'null. Чтобы справиться с этим в context.xml, я изменил процессор cookie, чтобы использовать LegacyCookieProcessor, но после этого значения cookie превращаются в указатель. Вместо 'assss@gmail.com' у меня есть 'assss'.

Как я могу это сделать?

Параметры allowEqualsInValue и ALLOW_HTTP_SEPARATORS_IN_V0 всегда установлены на true в setenv.

Что также интересно в документации Tomcat: «Процессор cookie RFC 6265 обычно более снисходительный, чем унаследованный анализатор cookie. В частности:

The '=' and '/' characters are always permitted in a cookie value.
Name only cookies are always permitted.
The cookie header is always preserved.

Для меня это неправда. Когда значение моего cookie содержит '=', я вижу ноль в своем коде Java.

С уважением

...