我如何记录主机 headers 的 http 请求(Spring 启动)

How can i log host headers of http requests (Spring Boot)

我需要查看通过我的 Spring 启动应用程序的所有请求的主机 headers 是什么。我尝试记录所有请求 headers 但我似乎无法记录主机 headers.

用于打印所有 headers.

的示例代码
@GetMapping("/headers")
    public String getHeaders(@RequestHeader Map<String, String> headers) {
        headers.forEach((key, value) -> {
            System.out.println(String.format("Header '%s' = %s", key, value));
        });
     return "success";
    }

这对你有帮助!

创建一个过滤器,您将能够看到所有可用的 header。这是示例代码:

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class RequestFilter implements Filter {

    public RequestFilter() {}

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletRequest httpRequest = (HttpServletRequest) request;

        Enumeration<String> headerNames = httpRequest.getHeaderNames(); //print this to see all headers

        httpRequest.getHeader("host"); //returns the host header
        chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig filterConfig) {}

    @Override
    public void destroy() {}
}