1 from logging import Logger
2 from typing import Any, Callable, Mapping, NamedTuple, Sequence
4 from .utilities import BadRequest as BadRequest
6 PROXY_HEADERS: frozenset[Any]
8 class Forwarded(NamedTuple):
14 class MalformedProxyHeader(Exception):
18 def __init__(self, header: str, reason: str, value: str) -> None: ...
20 def proxy_headers_middleware(
22 trusted_proxy: str | None = ...,
23 trusted_proxy_count: int = ...,
24 trusted_proxy_headers: set[str] | None = ...,
25 clear_untrusted: bool = ...,
26 log_untrusted: bool = ...,
28 ) -> Callable[..., Any]: ...
29 def parse_proxy_headers(
30 environ: Mapping[str, str], trusted_proxy_count: int, trusted_proxy_headers: set[str], logger: Logger = ...
32 def strip_brackets(addr: str) -> str: ...
33 def clear_untrusted_headers(
34 environ: Mapping[str, str], untrusted_headers: Sequence[str], log_warning: bool = ..., logger: Logger = ...