Senior
How to implement validation for the X-Trace-ID header: if the header is missing — return 400?
sobes.tech AI
Answer from AI
In Java, if you are using Spring Boot, you can implement a check for the X-Trace-ID header in a controller or through a filter. For example, through a filter that checks for the presence of the header and returns a 400 error if it is missing:
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);
}
}
Then this filter is registered in the application configuration. This approach centralizes the header check for all requests.