Встречается на собеседованиях • сегодня

Какие знаешь способы фильтрации запросов по заголовку

В Java можно фильтровать запросы по заголовкам несколькими способами:

  1. Servlet Filter - перехватывает запросы перед сервлетом:
java
public class HeaderFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
        throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        if ("valid-value".equals(request.getHeader("X-Custom-Header"))) {
            chain.doFilter(req, res);
        } else {
            ((HttpServletResponse) res).sendError(HttpServletResponse.SC_FORBIDDEN);
        }
    }
}
  1. Spring Interceptor (в Spring MVC):
java
public class AuthInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler) {
        return "valid-token".equals(req.getHeader("Authorization"));
    }
}
  1. JAX-RS ContainerRequestFilter (для REST):
java
@Provider
public class JaxRsHeaderFilter implements ContainerRequestFilter {
    @Override
    public void filter(ContainerRequestContext ctx) {
        if (!ctx.getHeaders().containsKey("X-Required-Header")) {
            ctx.abortWith(Response.status(Response.Status.BAD_REQUEST).build());
        }
    }
}
  1. Spring Security - через HeaderAuthenticationFilter или кастомные SecurityFilterChain конфигурации.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы