Мне нужно вычислить какой-то дайджест тела запроса с помощью WebClient Webflux, и этот дайджест должен быть установлен в заголовке HTTP. Использовать старый добрый Spring MVC ClientHttpRequestInterceptor легко, поскольку тело запроса предоставляется в виде массива байтов.
Функция ExchangeFilterFunction не предоставляет доступ к телу запроса.
Тело отправляется как JSon, а Spring использует Jackson для сериализации объектов Java, поэтому можно сериализовать мой объект в Json и вычислить по нему дайджест, но у этой стратегии есть два недостатка:
- мой код будет повторять то, что будет делать Spring, когда запрос действительно будет отправлен
- нет гарантии, что фактические байты, отправленные Spring в качестве запроса, равны тому, что я передал в функцию дайджеста
Я полагаю, что мне следует использовать какой-то низкоуровневый API Netty, но я не могу найти ни одного примера.