Tomcat 8.5: Разрешить BackSlash - PullRequest
       13

Tomcat 8.5: Разрешить BackSlash

0 голосов
/ 30 апреля 2018

Я работаю над настройкой NetIQ IDAM, и один из компонентов NetIQ IDAM, т. Е. Пользовательское приложение, работает на предварительно настроенном Tomcat 8.5.x. Пользовательское приложение имеет некоторые предварительно определенные функции, которые обеспечивают обратную косую черту в URL, но tomcat блокирует черные черты в URL в качестве меры безопасности.

Я пытался использовать эти опции:

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true

но бесполезно.

и поскольку часть компонента не настраивается, у меня нет другого выбора, кроме как каким-то образом настроить tomcat, чтобы разрешить обратную косую черту в URL.

Любые предложения, как мне этого добиться.

Пример HTTP-запроса: ? TargetName = abc @ xyz \ .com

1 Ответ

0 голосов
/ 30 апреля 2018

Клиент не работает. RFC 7230 и RFC 3986 требуют, чтобы символ \ кодировался в% nn при использовании в строке запроса.

Как правило, сообщество Tomcat реализует спецификации и рассматривает любое несоответствие спецификации как ошибку. Сообщество Tomcat ожидает, что другие сообщества разработчиков сделают то же самое.

К сожалению, поставщики браузеров решили игнорировать требования кодирования% nn RFC 7230 и RFC 3986 и, несмотря на то, что утверждают, что работают в соответствии со своей спецификацией, в результате каждый из основных браузеров% nn кодирует разные подмножество символов, которые должны быть закодированы.

Хорошей новостью для вас является то, что в результате этого беспорядка Tomcat 9.0.8, 8.5.21, 8.0.52 и 7.0.87 представит (эти версии все еще будут голосовать, когда я набираю это) опции которые позволяют использовать символы непосредственно в пути URI и / или строке запроса без кодировки% nn.

Как только эти выпуски станут доступны, вы сможете настроить Tomcat на прием \ в строке запроса. Между тем, я бы порекомендовал поднять баг против клиента за несоблюдение спецификаций в любом случае. Лучше иметь правильно работающий клиент, чтобы вы могли отказаться от работы в Tomcat.

...