Sobes.tech
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.