добавьте заголовок ответа с помощью фильтра

#spring-boot

Вопрос:

Мне нужно добавлять заголовок в каждый ответ. Я достиг этого, используя приведенный ниже код.

 @Component
@WebFilter("/*")
public class CustomerResponseFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        
            HttpServletResponse wrappedResponse = new HttpServletResponseWrapper((HttpServletResponse) response) {
                
                public void setStatus(int code) {
                        super.setStatus(code);
                        String header = ((HttpServletResponse) response).getHeader("customHeader"); // getting customer header if we have any
                        if (header == null) {
                            switch (code) {
                            case 200:
                            case 204:
                                this.addHeader("customHeader", "SUCCESS");
                                break;
                            case 404:
                                this.addHeader("customHeader", "NOTFOUND");
                                break;
                            case 400:
                            case 500:
                                this.addHeader("customHeader", "FAILURE");
                                break;
                            default:
                                this.addHeader("customHeader", "SUCCESS");
                                break;
                            }
                        }
                }
            };
            chain.doFilter(request, wrappedResponse);
        
    }
}

 

приведенный выше код работает нормально, как и ожидалось. Теперь я пытаюсь установить этот пользовательский заголовок только в том случае, если «Пользовательский заголовок» не был задан в поле заголовка ответа.

Я пытаюсь получить значение String header = ((HttpServletResponse) response).getHeader("customHeader"); customerHeader, но оно всегда равно нулю

Можете ли вы кто-нибудь, пожалуйста, предложить мне это или есть какие-либо альтернативные варианты?