1

Я ищу способ проверить, настроен ли пользовательский заголовок «X-Client-Id» на значение, определенное в Repository, в HTTP-запросе, отправленном в REST -контроллер в SpringBoot.Подтвердить поле HTTP-заголовка в Spring RestController

Я вижу учебники (например, this), который включает заголовок в методе: @RequestHeader(value="User-Agent"). Я предполагаю, что мне пришлось бы писать эту строку для каждого метода и вводить общий валидатор-компонент для проверки значения.

Другой stackoverflow answer, как представляется, предлагает использовать HandlerInterceptor. Я не уверен, что если это применимо к значениям заголовков и конечным точкам REST.

Итак, каков рекомендуемый способ проверки всех методов класса/REST-контроллера независимо от того, установлен ли определенный заголовок или нет?

ответ

2

В принципе, самый простой (и наиболее логичный) способ - поймать запрос, прежде чем он попадет на ваш контроллер. Это может быть достигнуто либо с HandlerInterceptor, либо с другими ответами, либо с простым Filter, как OncePerRequestFilter.

Расширьте этот класс, переопределите метод doFilterInternal(), так как doFilter() является окончательным, извлекает правильное значение заголовка, проверяет его на все, что вам нужно, и в зависимости от значения либо бросает исключение, либо продолжает цепочку.

+0

Я думаю, что нашел идеальное объяснение с примером здесь: http://stackoverflow.com/a/35458670/3105453. Спасибо за вашу помощь и указав правильное направление – user3105453

Смежные вопросы