Я не получаю свой настраиваемый заголовок, который я установил с помощью оболочки для запроса внутри HttpHeader в контроллере.
RequestWrapper: -
открытый класс RequestWrapper extends HttpServletRequestWrapper {
private final Map<String, String> customHeaders;
public RequestWrapper(HttpServletRequest request)
{
super(request);
this.customHeaders = new HashMap<String, String>();
}
public void setHeader(String name, String value)
{
this.customHeaders.put(name, value);
}
@Override
public String getHeader(String name)
{
return !StringUtils.isEmpty(customHeaders.get(name)) ? customHeaders.get(name)
: ((HttpServletRequest) getRequest()).getHeader(name);
}
@Override
public Enumeration<String> getHeaderNames()
{
Set<String> set = new HashSet<String>(customHeaders.keySet());
Enumeration<String> e = ((HttpServletRequest) getRequest()).getHeaderNames();
while (e.hasMoreElements())
{
set.add(e.nextElement());
}
return Collections.enumeration(set);
}
}
открытый класс RequestFilter расширяет OncePerRequestFilter {
@ Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException
{
RequestWrapper req = new RequestWrapper(request);
req.setHeader("Uuid", UUID.randomUUID().toString());
filterChain.doFilter(req, response);
}
}
}
Я не получаю Uuid или пользовательский заголовок здесь, в HttpHeader, почему?
@PostMapping(value = "/v0.2/Student/add")
public ResponseEntity<ResponseBody<PlatformCardResponse>> addStudent(HttpServletRequest request,
@RequestHeader HttpHeaders httpHeaders,
@RequestBody Student s)
{
Как я могу заставить его работать, чтобы получить заголовок внутри HttpHeader. или любой другой подход, мы должны изменить заголовок запроса в httpServletRequest ????