JBoss 5 усекает запаздывание = строки base64 cookie

В Oracle для вставки нескольких строк в таблицу t со столбцами col1, col2 и col3 можно использовать следующий синтаксис:

INSERT ALL
   INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
   INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3')
   INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3')
   .
   .
   .
SELECT 1 FROM DUAL;
5
задан LiorH 16 November 2009 в 19:02
поделиться

3 ответа

Есть ли у вас контроль над тем, как ваши файлы cookie создаются и кодируются / декодируются? Если да, то вы можете переключиться на альтернативный механизм кодирования, который не использует символы, которые могут противоречить спецификации cookie. Например, Кодек Apache Commons включает класс Hex , который может кодировать и декодировать двоичные данные в и из шестнадцатеричной строки. Это будет больше, чем эквивалентные данные в base64, но это может не иметь значения.

В качестве альтернативы вы можете немного поиграться с API Cookie . В javadoc для Cookie.setValue () говорится:

С файлами cookie версии 0 значения должны не содержать пробелов, скобок, круглые скобки, знаки равенства , запятые, двойные кавычки, косые черты, вопрос знаки, знаки, двоеточия и точка с запятой. Пустые значения не могут работают одинаково во всех браузерах.

Таким образом, технически кодировка base64 несовместима с файлами cookie версии 0, которые могут использоваться по умолчанию. Вы можете попробовать вызвать setVersion (1) для файла cookie и посмотреть, имеет ли это значение, хотя тогда вы рискуете столкнуться с проблемами совместимости браузера.

6
ответ дан 14 December 2019 в 04:41
поделиться

Если я правильно понимаю отчет об ошибке, правильная реализация кодировщика всегда будет выдавать строку, кратную 4, поэтому, если вы добавите исправление ошибки, она не сработает в других серверов приложений, чем JBoss. Таким образом, ваш код будет работать на всех серверах. Кстати, возможно, вы могли бы реализовать его как фильтр сервлетов, который будет минимально навязчивым для вашего приложения.

1
ответ дан 14 December 2019 в 04:41
поделиться

для jboss 5 установите следующее системное свойство:

org.apache.catalina.STRICT_SERVLET_COMPLIANCE = false

- bala

1
ответ дан 14 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: