Welcome! Log In Create A New Profile

Advanced

Re: request body filter

Maxim Dounin
August 10, 2021 09:20AM
Hello!

On Mon, Aug 09, 2021 at 11:48:35AM -0700, Dk Jack wrote:

> Hi,
> In my module, I am inspecting the request body. My body filter init code is
> shown below:
>
> int
> module_body_filter_init(ngx_conf_t *cf)
> {
> ngx_http_next_body_filter = ngx_http_top_request_body_filter;
> ngx_http_top_request_body_filter = nginx_module_inspect_body_filter;
>
> return NGX_OK;
> }
>
> Even though I have the above initialization, I do not want to inspect the
> body for all requests. I figured the body filter would be invoked in the
> content phase. Hence, I registered a handler in the NGX_HTTP_ACCESS_PHASE
> to create my module context and set the flag to inspect the request body.
> This works in some cases but is inconsistent. It looks like my
> inspect_body_filter function is getting called before my access handler
> function in some cases. I've now moved my handler to POST_READ_PHASE to get
> consistent results. Is this the correct way to solve this problem? Are
> there any other ways to accomplish this or are there any pitfalls to this
> approach. Any help is appreciated. Thanks.

Request body filters are called when the request body reading
happens. This can happen at any phase, especially when using
other 3rd party modules, and it is generally incorrect to assume
that some phase handler is called before reading the request body.

Note well that module contexts are cleared on internal
redirections, and this might also be a problem for your approach.

A better approach would be to depend on the location configuration
instead. And do appropriate checks in the request body filter
itself if some run-time logic is needed.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

request body filter

dnj0496 1126 August 09, 2021 02:50PM

Re: request body filter

Maxim Dounin 298 August 10, 2021 09:20AM

Re: request body filter

dnj0496 435 August 10, 2021 01:06PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 166
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready