Apiman: пользовательская политика, которая читает тело запроса до завершения обработки запроса.

Я пытаюсь реализовать пользовательский плагин Apiman, содержащий политику, которая добавляет заголовок, необходимый для некоторой (пользовательской) аутентификации бэкэнд-API. Чтобы вычислить заголовок, создается хеш из нескольких вещей, включая тело запроса.

До сих пор я использовал AbstractMappedDataPolicy в качестве базового класса для моей политики и doApply(ApiRequest request, ...) реализован для того, чтобы вычислить требуемый заголовок. Я также реализовал

protected abstract IReadWriteStream<ApiRequest> requestDataHandler(ApiRequest request, IPolicyContext context, C policyConfiguration);

для чтения (и последующего хеширования) тела запроса.

Кажется, что чтение тела запроса происходит после применения политики, как указано в документации:

Тело запроса или ответа не начнет потоковую передачу до того, как будет вызван соответствующий doApply, однако все еще возможно прервать диалог во время фазы потоковой передачи с помощью сигнализации doFailure или doError.

Насколько я могу сказать, нет никакого способа обойти это. Поскольку моя политика требует тела, хотя прежде чем он сможет завершить обработку запроса, я не уверен, как решить этот случай. Есть ли другой способ, позволяющий прочитать тело до или во время обработки запроса?

0 ответов

Другие вопросы по тегам