Предоставление настраиваемого сообщения об ошибке, когда HTTP-заголовок недействителен (содержит пробелы) - PullRequest
0 голосов
/ 06 мая 2020

По умолчанию Spring boot соответствует RFC7230 section-3.2.4 и возвращает 400, если заголовок недействителен, например:

curl -v -H "Authorization : Basic xxxx" $SOME_URL

Вот соответствующий отрывок из подробного curl вывод:

* HTTP 1.0, assume close after body
< HTTP/1.0 400 Bad Request
< content-length: 0
< connection: close
<
* Closing connection 0

(Без текста, без объяснения)

Лишние пробелы перед двоеточием запрещены. К сожалению, я не могу уловить это исключение и предоставить для него текстовое тело. Запрос не отображается в WebFilter, исключение также не перехватывается в AbstractErrorWebExceptionHandler. Есть какие-нибудь советы, как поступить в этом случае?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Обычно, чтобы переопределить способ обработки исключения Spring, нужно расширить ResponseEntityExceptionHandler. Я предлагаю вам взглянуть на эти 2 руководства 1 2

0 голосов
/ 06 мая 2020

Хотя я не уверен, как вы защищаете свои конечные точки, вам может быть интересна следующая ссылка https://www.baeldung.com/spring-security-custom-authentication-failure-handler.

...