XForwardedMiddleware#
- class safir.middleware.x_forwarded.XForwardedMiddleware(app, *, proxies=None)#
Bases:
object
ASGI middleware to update the request based on
X-Forwarded-For
.The remote IP address will be replaced with the right-most IP address in
X-Forwarded-For
that is not contained within one of the trusted proxy networks.If
X-Forwarded-For
is found andX-Forwarded-Proto
is also present, the corresponding entry ofX-Forwarded-Proto
is used to replace the scheme in the request scope. IfX-Forwarded-Proto
only has one entry (ingress-nginx has this behavior), that one entry will become the new scheme in the request scope.The contents of
X-Forwarded-Host
will be stored asforwarded_host
in the request state if it andX-Forwarded-For
are present. Normally this is not needed since NGINX will pass the originalHost
header without modification.- Parameters:
proxies (
Optional
[list
[_BaseNetwork
]], default:None
) – The networks of the trusted proxies. If not specified, defaults to the empty list, which means only the immediately upstream proxy will be trusted.app (
Callable
[[MutableMapping
[str
,Any
],Callable
[[],Awaitable
[MutableMapping
[str
,Any
]]],Callable
[[MutableMapping
[str
,Any
]],Awaitable
[None
]]],Awaitable
[None
]]) –
Methods Summary
__call__
(scope, receive, send)Call self as a function.
Methods Documentation