Не уверен, почему веб-сервис spark java выдает ошибку 400 в закодированную дату - PullRequest
0 голосов
/ 26 февраля 2020

Я передаю этот URL:

"http://localhost:8080/services/getWeeksFromDate/2%2F25%2F2020" 

, и появляется эта ошибка:

HTTP-статус 400 - неверный запрос

Тип Отчет о состоянии

Сообщение Неверный URI: noSla sh

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

Apache Tomcat / 9.0.7

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

Если я передам "Привет" вместо закодированной даты выше, это работает хорошо.

В реальном методе я просто пытаюсь вернуть переданную строку в - без обработки, пока я пытаюсь это выяснить.

Ничего полезного в журнале Tomcat. Не удается отладить, поскольку это происходит вне кода метода.

Буду признателен за любые предложения.

Спасибо,

1 Ответ

0 голосов
/ 26 февраля 2020

Это происходит из-за того, что Tomcat декодирует символы sla sh до того, как они достигают Spark, в качестве меры безопасности.

Вы можете отключить это поведение, установив системное свойство org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH в true (например, через Tomcat's catalina.properties).

...