Назад к вопросам
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);
}
}
}