Doing an "upstream" request without sending result back to client

Maxim Dounin mdounin at mdounin.ru
Mon Dec 2 13:48:40 UTC 2013


Hello!

On Mon, Dec 02, 2013 at 09:22:50PM +1100, Vincent Gross wrote:

> Hi folks,
> 
> I want to implemement a webid authn module in nginx. This is the big picture:
> 
> 1. Client do an https request and sends a client cert
> 2. Certs contains a subjectAltName URI, e.g. https://mysite.info/id/
> 3. Server fetches https://mysite.info/id/ content
> 4. If content do contains public key info matching client cert, authn
>    successful.
> 
> From what I see in src/http/ngx_http_upstream.c in functions
> ngx_http_upstream_process_header(ngx_http_request_t *, ngx_http_upstream_t *)
> & ngx_http_upstream_send_response(ngx_http_request_t *, ngx_http_upstream_t *),
> it is not possible to do the request [3] without sending back at least a
> response header back to the client.
> 
> Did I miss something or am I really setting myself for reimplementing the
> mechanisms of ngx_http_upstream.c? Any advices/guidelines for the latter (other
> then taking example on original upstream?)

You may try looking into subrequests, in particular - 
NGX_HTTP_SUBREQUEST_IN_MEMORY functionality.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx-devel mailing list