tomcat8 - настраиваемая страница ошибок для 400 - PullRequest
0 голосов
/ 07 июня 2018

В Tomcat (v8.5.24) URL-адрес с параметром запроса, содержащим фигурную скобку без кода ("{"), выдает ошибку 400.

Вы можете настроить Tomcat, чтобы разрешить его с помощью "relaxedQueryChars".Но это не то, что я хочу.Я попытался написать пользовательскую страницу ошибки и добавить ее в web.xml

<error-page>
        <error-code>400</error-code>
        <location>/error/error400</location>
</error-page>

Но это не работает, поскольку Tomcat действительно убивает запрос и не обрабатывает страницы ошибок (org.apache.coyote.http11.Http11Processor: 737)

Кажется, нет способа справиться с этим.Теперь я попытался справиться с этим в nginx.Но чтобы справиться с этим, мне нужно установить «proxy_intercept_errors = on», и я не хочу перехватывать все коды ошибок от моего прокси.

Так что не повезет, рендеринг пользовательской страницы 400 в этом сценарии?Или есть ли обходной путь?

1 Ответ

0 голосов
/ 12 ноября 2018

Я также столкнулся с этой проблемой, и в качестве обходного пути я реализовал собственный ErrorReportValve, расширив класс org.apache.catalina.valves.ErrorReportValve и настроив его на своем Tomcat.

Для достижения этой цели следующая статья была действительнополезно: http://robupcraft.com/tomcat-valves/

Обратите внимание, что для реализации (и успешной сборки) вам нужна зависимость tomcat-catalina.

...