Ответ 1
Существует опция Tomcat для разрешения кодированных разделителей путей.
Установите для CATALINA_OPTS env var значение
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
Это позволит кодировать косые черты.
Я пытаюсь отправить запрос, например http://site.com/abc%2Fabc, и он не работает (отправьте статус 400). Как я понимаю, tomcat не принимает кодированные разделители пути по соображениям безопасности, но я не знаю, как включить эту кодировку. (Я нашел только вариант AllowEncodedSlashes для apache http server). Можете ли вы мне помочь?
ОБНОВЛЕНИЕ
Я исправил эту проблему с помощью крошечного взлома - перед рендером замените все символы "/" на "|" и после обратного отображения этих символов в '/'
Существует опция Tomcat для разрешения кодированных разделителей путей.
Установите для CATALINA_OPTS env var значение
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
Это позволит кодировать косые черты.
Мы также можем добавить эту запись "org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH = true" в catalina.properties разрешить закодированную косую черту в URL-адресе.
И чтобы разрешить обратную косую черту, вы должны установить разные свойства. Ссылка на этот URL для различной конфигурации.
Пробовали ли вы помещать URIEncoding="UTF-8"
в <Connector
в server.xml
?