#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, но оно всегда равно нулю
Можете ли вы кто-нибудь, пожалуйста, предложить мне это или есть какие-либо альтернативные варианты?