Как отключить проверку информации о хосте по заголовку запроса в весенней загрузке приложения - PullRequest
0 голосов
/ 12 октября 2019

У меня есть приложение поставщика, отправляющее Host = servername: 8444s в их заголовке - порт примечания заканчивается символом s . и похоже, что это вызывает проблему, и запрос не может быть передан dispatcherServlet.

У меня есть подробные журналы на пост ниже. в чем причина отсутствия обнаружения RestController для некоторых запросов

Есть ли способ отключить проверку информации заголовка (hostname: port) в приложении весенней загрузки?

Пожалуйста, веди меня.

1 Ответ

0 голосов
/ 12 октября 2019

Tomcat (не Spring Boot) возвращает 400, так как заголовок хоста недопустим, нет конфигурации для изменения этого поведения.

Цитата из https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

14.23 Хост

В поле заголовка запроса Хост указывается хост Интернета и номер порта запрашиваемого ресурса, полученные из исходного URI, предоставленного пользователем или ссылающегося ресурса (обычно этоHTTP URL, как описано в разделе 3.2.2). Значение поля Host ДОЛЖНО представлять полномочия именования исходного сервера или шлюза, заданного исходным URL. Это позволяет исходному серверу или шлюзу различать внутренне неоднозначные URL-адреса, такие как корневой «/» URL-адрес сервера для нескольких имен хостов на одном IP-адресе.

   Host = "Host" ":" host [ ":" port ] ; Section 3.2.2

«хост» безлюбая информация конечного порта подразумевает порт по умолчанию для запрашиваемой услуги (например, «80» для HTTP-URL). Например, запрос на исходный сервер для http://www.w3.org/pub/WWW/ будет правильно включать:

   GET /pub/WWW/ HTTP/1.1
   Host: www.w3.org

Клиент ДОЛЖЕН включать поле заголовка узла во все сообщения запроса HTTP / 1.1. Если запрошенный URI не включает имя хоста Интернета для запрашиваемой услуги, тогда поле заголовка хоста ДОЛЖНО быть задано с пустым значением. Прокси-сервер HTTP / 1.1 ДОЛЖЕН гарантировать, что любое передаваемое им сообщение-запрос содержит соответствующее поле заголовка хоста, которое идентифицирует услугу, запрашиваемую прокси-сервером. Все интернет-серверы HTTP / 1.1 ДОЛЖНЫ отвечать кодом состояния 400 (неверный запрос) на любое сообщение запроса HTTP / 1.1, в котором отсутствует поле заголовка хоста.

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