首页 > 解决方案 > How to add HTTP Response Header by a value of Response Payload in Spring Boot

问题描述

I want to set the header of HttpServletResponse in filter or something similar after the Response is generated in my spring boot project. In filter, I can do something similar:

 ((HttpServletResponse)servletResponse).addHeader("test","value");
  fc.doFilter(request, servletResponse);

But the problem is that my header value is generated from the response body(payload) itself, so I have to use the content of ServletResponse payload to add it to the header. How can I do it?

I could do it on controller level but I don't want to do it manually for all the responses.

标签: javaspringspring-bootspring-mvc

解决方案


You can make use of this code

 String authorizationHeader = request.getHeader("Authorization");
        if (authorizationHeader != null && authorizationHeader.startsWith("Bearer ")) {
            token = authorizationHeader.substring(7);
            userName = jwtUtil.extractUsername(token);
            request.setAttribute("userid",userName);
        }

so now this code generates a token where you have userid that gives userName along with the token


推荐阅读