Почему я не получаю значение в параметре метода
@RequestHeader ("Custom-Header")
, хотя получаю его в
@RequestHeader Map<String, String> headers
?
Изначально запрос поступает на сервер без "Custom-Header" я добавляю его в своем фильтре. После этого запрос попадает в метод, но почему-то spring не инжектит заголовок в параметр
@RequestHeader("Custom-Header")
method:
@PostMapping("/support")
public SupportView sendEmailToSupport(/*@Validated MessageView supportView,*/
@RequestHeader Map<String, String> headers, //здесь присутствует "Custom-Header"
@RequestHeader(value = CUSTOM_HEADER, required = false) String customHeader) { //но сюда не инжектит
SupportView supportView = helpDeskService.sendEmailToSupport(null, customHeader);
return supportView;
}
filter:
public class HeaderChangerFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
MutableHttpServletRequestWrapper request = new MutableHttpServletRequestWrapper((HttpServletRequest) servletRequest);
String oldHeaderValue = request.getHeader(OLD_HEADER);
String newHeaderValue = request.getHeader(CUSTOM_HEADER);
if (oldHeaderValue != null && newHeaderValue == null) {
request.putHeader(CUSTOM_HEADER, RequestHeaderUtils.getOldHeaderValue(request));
}
filterChain.doFilter(request, servletResponse); //в реквесте есть "Custom-Header"
}}