Проблема кодирования «Допустимые символы определены в RFC 7230 и RFC 3986» в Tomcat 9 - PullRequest
1 голос
/ 27 июня 2019

Я работаю в очень старом и старом программном обеспечении, которое работает с сервлетами и включает в себя акценты и другие странные символы в URL. Программное обеспечение было обновлено с JDK7 до JDK11 несколько недель назад, а сервер был обновлен с Tomcat6 до Tomcat9.

Я пробовал:

- Using URLEncoder in the java part and encodeURI in the javascript part and it works fine, but there are hundreds of places that need this change and it's complicated because it's easy to make a mistake.
- Use the encodeURI in the server.xml of Tomcat but it doesn't change anything. And I've added the relaxedQueryChars tag, but it doesn't accept accents.
- The last thing that I've tried is to add a filter, to try to encode the params of the request, in the web.xml but it doesn't work when the error appears and there's no option to change the order. And another problem is that the ServletRequest has no setParameter so if I can solve the order filter problem I have this one...

Я получаю эту ошибку:

Estado HTTP 400 – Bad Request 
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 

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

Спасибо!

1 Ответ

0 голосов
/ 01 июля 2019

Наконец, мы решили установить Tomcat8 вместо 9, потому что изменение кодификации было введено в Tomcat8.5.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...