2017-02-05 31 views
1

С помощью «традиционной» веб-структуры можно использовать, например, AbstractRequestLoggingFilter для реализации общего каротажного фильтра. С веб-реакцией фильтр больше не вызывается (что имеет смысл, поскольку он работает с HttpServletRequest).Как реализовать общий запрос HTTP-запроса/ответа с веб-реактивным

Может ли кто-нибудь указать мне правильное направление для реализации фильтра запросов с веб-реактивной, который регистрирует HTTP-запрос, включая его тело, до и после запроса, например, в AbstractRequestLoggingFilter?

ответ

1

Вы можете реализовать WebFilter и объявить его как фасоль, он будет автоматически поднят.

Заметь, что договор WebFilter основан на ServerWebExchange, в котором содержится ServerHttpRequest. Тело недоступно непосредственно как byte[], а скорее как Flux<DataBuffer>; это не предназначено для буферизации в памяти или потребления фильтром, поэтому регистрация всего тела запроса сложнее, чем в сценариях MVC. Кроме того, во время обработки запроса следует избегать блокировки.