Фильтр сервлетов с локальным потоком в Netflix DGS

#java #spring-boot #servlet-filters #netflix-dgs

Вопрос:

Стек: Весенняя загрузка: 2.4.5 DGS: 3.11.0

Случай: Есть необходимость фильтровать каждый запрос и считывать из него HTTP-заголовки. Значение из заголовков должно быть доступно в последующем коде, который обрабатывает запрос GraphQL. Общим подходом может быть использование фильтра сервлета с ThreadLocal для хранения этих значений.

Проблема: DGS использует CompletableFutures для обработки входящих запросов GraphQL, поэтому, даже если фильтр настроен и данные считываются в локальный поток, они не будут доступны в потоке выполнения DGS.

Каковы были бы рекомендуемые способы решения такого рода проблем?