Sobes.tech
Назад к вопросам
Junior — Middle
62

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

Ответ от нейросети

sobes.tech AI

Фильтрация запросов по заголовкам в 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);
        }
    }
}