【问题标题】:Spring Boot Filter can't get custom request headerSpring Boot Filter 无法获取自定义请求标头
【发布时间】:2022-11-30 18:14:08
【问题描述】:

我正在尝试在 spring 过滤器中从客户端获取自定义请求标头 但是即使我记录了所有的标题,我仍然找不到“userId”标题

这是我的过滤器,效果很好

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    AuthRequestWrapper authRequestWrapper = new AuthRequestWrapper((HttpServletRequest) servletRequest);
    HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
    Enumeration<String> headerNames = httpRequest.getHeaderNames();
    if (headerNames != null) {
        while (headerNames.hasMoreElements()) {
            String name = headerNames.nextElement();
            Syssem.out.println("Header: " + name + " value:" + httpRequest.getHeader(name));
        }
    }

}

在客户端,我执行这样的请求:

let credentials: RequestCredentials = "omit"
        let mode: RequestMode = 'cors'
        let headers: HeadersInit = {
            "Content-Type": "application/json",
            "Access-Control-Allow-Origin": "http://localhost:8080",
            "userId":"ABCD"
        }
const fetchOption = {
            method: 'GET', // *GET, POST, PUT, DELETE, etc.
            credentials: credentials, // include, *same-origin, omit
            headers: headers,
            mode: mode, // no-cors, *cors, same-origin
        }
let responseObj = await (await fetch(finalUrl,fetchOption)).json()

我仍然可以在 Spring Controller 中获取请求标头。

【问题讨论】:

  • 没有 userId 标头,至少我看到它没有被添加到客户端代码中。您的过滤器也有缺陷,因为它在最后停止处理,您应该调用filterChain.doFilter(authRequestMapper, response);,否则它会破坏应用程序。
  • @M.Deinum 我只是忘了在问题中添加“userId”标头,但我很确定它在我的项目中有效并且控制器可以接收标头
  • 所以你发布了代码的简化版本而不是实际代码?您的过滤器根本无法工作,因为处理将在记录后停止,因此这不是您使用的实际过滤器。尽管如此,如果您没有收到标头,则标头根本不存在,因此不会从客户端发送到服务器。

标签: reactjs typescript spring-boot


【解决方案1】:

尝试标题的另一个键。例如:x-access-token:{value}

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 2023-03-25
    • 1970-01-01
    • 2014-04-22
    • 2017-08-09
    相关资源
    最近更新 更多