Как передать измененный/обернутый HTTPServletRequest последующим фильтрам Zuul?

У нас есть предварительный фильтр Zuul (Filter1), который будет проверять входящий HTTPServletRequest и вносить в него некоторые изменения в параметры запроса, чтобы встроить его в созданный пользователем запрос (обертывая HttpServletRequestWrapper).

Теперь я хочу передать этот пользовательский упакованный запрос следующему предварительному фильтру Zuul (Filter2). Как я могу это сделать ?

Раньше при использовании обычных фильтров сервлетов мы использовали следующее в моем Filter1

chain.doFilter(new CustomRequestWrapper(request, extra), response);

но в Zuul Filter среда Zuul заботится о вызове последующих фильтров и передаче объектов запроса/ответа. Как я могу переопределить это?


person yathirigan    schedule 22.05.2015    source источник


Ответы (1)


Перед завершением выполнения Filter1 вызовите следующий код, чтобы перезаписать существующий HTTPServletRequest нашим обернутым пользовательским запросом.

RequestContext context = RequestContext.getCurrentContext();
HttpServletRequest request = context.getRequest();
.
.
. 
context.setRequest(new CustomRequestWrapper(request, extra));

Ссылка: http://netflix.github.io/zuul/javadoc/zuul-core/com/netflix/zuul/context/RequestContext.html.#setRequest(javax.servlet.http.HttpServletRequest)

person yathirigan    schedule 26.05.2015