Sobes.tech
Назад к вопросам
Senior
3

Как реализовать валидацию заголовка X-Trace-ID: если заголовка нет — вернуть 400?

Компании, где спрашивали
СБЕРСБЕР

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

sobes.tech AI

В Java, если используете Spring Boot, можно реализовать проверку заголовка X-Trace-ID в контроллере или через фильтр. Например, через фильтр, который проверяет наличие заголовка и возвращает 400, если его нет:

import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpFilter;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

public class TraceIdFilter extends HttpFilter {
    @Override
    protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        String traceId = request.getHeader("X-Trace-ID");
        if (traceId == null || traceId.isEmpty()) {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing X-Trace-ID header");
            return;
        }
        chain.doFilter(request, response);
    }
}

Затем этот фильтр регистрируется в конфигурации приложения. Такой подход централизует проверку заголовка для всех запросов.