Назад к вопросам
СБЕР
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);
}
}
Затем этот фильтр регистрируется в конфигурации приложения. Такой подход централизует проверку заголовка для всех запросов.