Я пытаюсь использовать Zuul
для перенаправления вызовов в нисходящую систему где-то еще.
В перенаправлении мне нужно добавить в заголовок необходимые данные для api
получения перенаправления для обработки. Кажется, я не могу заставить нижестоящую систему обнаружить эти данные. Прикреплен мой код.
Я использую Zuul
от Edgware.SR3, Spring Boot 1.5.12
Zuul Filter
@Component
public class RouteFilter extends ZuulFilter{
@Override
public Object run() {
//Testing to add header
context.getRequest().getParameterMap().put("api", new String[]{"api"});
context.getResponse().setHeader("api", api);
context.addZuulResponseHeader("api", "api");
context.addZuulRequestHeader("api", "api");
context.setSendZuulResponse(false);
context.put(FORWARD_TO_KEY, redirect_urls.get(key));
context.setResponseStatusCode(HttpStatus.SC_TEMPORARY_REDIRECT);
context.getResponse().sendRedirect(redirect_urls.get(key));
return null;
}
}
Код перенаправленной услуги
@RequestMapping(value = "/forward")
public ResponseEntity<String> forwardToMe(@RequestHeader(required = true, name = "api")String api){
return new ResponseEntity<String>("Hi",HttpStatus.OK);
}
Ошибка, полученная почтальоном
{
«отметка времени»: 1524737817729,
«статус»: 400,
«ошибка»: «Неверный запрос»,
«исключение»: «org.springframework.web.bind.ServletRequestBindingException»,
"message": "Отсутствует заголовок запроса" api "для параметра метода типа String",
"путь": "/ вперед"}