Я портирую наше промежуточное ПО для веб-аутентификации / авторизации для использования в контейнерах, реализующих новый API сервлетов 3.0 (в данном случае Glassfish V3).
Промежуточное программное обеспечение извлекает файлы cookie из фильтра HttpServletRequest для файлов cookie с именами формы «DACS: FEDERATION :: JURISDICTION: username». Это прекрасно работает в сервлете API версии 2.5, но не работает в 3.0.
Имена файлов cookie в версии 3.0 усекаются в первом «:» в имени. Я понимаю, что реализация сервлета 3.0 по умолчанию использует куки-файлы RFC 2109, которые являются более строгими в отношении имен куки-файлов, чем старая спецификация Netscape («:» входит в число символов, не разрешенных в именах куки-файлов RFC 2109).
При просмотре исходного кода сервлета 3.0 выясняется, что использование имен RFC2109 можно отключить, установив для свойства System "org.glassfish.web.rfc2109.cookie_names_enforced" значение false. Я пробовал это безрезультатно. Но кроме того, код, который использует проверки имен файлов cookie, находится в конструкторе для файла Cookie, и может показаться, что усечение происходит в другом месте.
Итак, наконец, вопрос. Другие сталкивались с такими проблемами в API сервлета 3.0 и нашли ли вы обходной путь?