首页 > 解决方案 > 如何在 Spring Boot 中的每个请求中添加具有静态值所需的特定 Header?

问题描述

在我的 Spring Boot 项目中,我制作了一些RESTful API。现在,对于我的 API 中的每个请求,我想设置一个特定的标头,如下所示 -

在此处输入图像描述

如果使用该特定标头名称和标头值调用 Http 请求,则只有这样它才会显示响应代码 ok(200) 否则它将显示一些其他响应代码。

我需要一个配置来修复项目中每个请求的特定标头。所以,我需要一些关于解决这个问题的程序的建议。

标签: javaspring-bootrequest-headers

解决方案


我认为在这种情况下,如果您想在单点过滤器中处理它们是不错的选择

我希望下面的代码可以让您了解如何使用过滤器来解决您的问题:

import org.springframework.web.filter.OncePerRequestFilter;

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

public class HeaderCheckerFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest request,
                                    HttpServletResponse response, FilterChain filterChain)
            throws ServletException, IOException {

        String header = request.getHeader("MyHeader");
        if (header != null && header.equals("HeaderValue")) {
            filterChain.doFilter(request, response);
        } else {
            response.getWriter().println("invalid request");
        }
    }
}

推荐阅读