2017-02-05 17 views
1

"従来の"ウェブフレームワークでは、一般的なロギングフィルタを実装するためのAbstractRequestLoggingFilter。 Web-reactiveでは、フィルタはもはや呼び出されません(HttpServletRequestで動作するので意味があります)。一般的なHTTPリクエスト/レスポンスログをウェブレスポンスで実装する方法

WebRactiveのリクエストフィルタを実装するための正しい方向を誰かが指摘できますか?リクエストを処理する前と後で、HTTPリクエストをログに記録します(AbstractRequestLoggingFilterなど)。

答えて

1

WebFilterを実装してBeanとして宣言すると、自動的に選択されます。

WebFilter契約は、ServerWebExchangeに基づいており、ServerHttpRequestを保持しています。身体は直接byte[]としてアクセス可能ではなく、Flux<DataBuffer>としてアクセスできます。これはメモリにバッファされたり、フィルタによって消費されることを意味するものではないため、要求本体全体を記録するのはMVCシナリオより複雑です。また、リクエスト処理中に操作をブロックしないようにする必要があります。

関連する問題