Какими методами можно осуществлять фильтрацию запросов, исходя из заголовковых данных?

Фильтрация запросов по заголовкам в Java обычно осуществляется с помощью фильтров (javax.servlet.Filter) или interceptor-ов в различных фреймворках (например, Spring).

Короткий ответ

Что ответить на собеседовании

Фильтрация запросов по заголовкам в Java обычно осуществляется с помощью фильтров (javax.servlet.Filter) или interceptor-ов в различных фреймворках (например, Spring).

Подробный разбор

Ответ с пояснениями

Фильтрация запросов по заголовкам в Java обычно осуществляется с помощью фильтров (javax.servlet.Filter) или interceptor-ов в различных фреймворках (например, Spring).

Основные способы:

  • Servlet Filter: реализуется интерфейс Filter, в методе doFilter можно получить заголовки из объекта HttpServletRequest и принять решение о пропуске или блокировке запроса.
  • Spring HandlerInterceptor: позволяет перехватывать запросы до и после обработки контроллером, также можно анализировать заголовки.
  • Использование аннотаций и аспектов (AOP): для более сложной логики фильтрации.

Пример фильтра по заголовку в Servlet Filter:

public class HeaderFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        String headerValue = req.getHeader("X-Custom-Header");
        if (headerValue != null && headerValue.equals("expectedValue")) {
            chain.doFilter(request, response); // пропускаем запрос
        } else {
            ((HttpServletResponse) response).sendError(HttpServletResponse.SC_FORBIDDEN);
        }
    }
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее