1 """Middleware that helps with the control of headers in our responses."""
3 from __future__
import annotations
5 from collections.abc
import Awaitable, Callable
7 from aiohttp.web
import Application, Request, StreamResponse, middleware
8 from aiohttp.web_exceptions
import HTTPException
15 """Create headers middleware for the app."""
18 "Referrer-Policy":
"no-referrer",
19 "X-Content-Type-Options":
"nosniff",
23 if use_x_frame_options:
24 added_headers[
"X-Frame-Options"] =
"SAMEORIGIN"
27 async
def headers_middleware(
28 request: Request, handler: Callable[[Request], Awaitable[StreamResponse]]
30 """Process request and add headers to the responses."""
32 response = await handler(request)
33 except HTTPException
as err:
34 err.headers.update(added_headers)
37 response.headers.update(added_headers)
40 app.middlewares.append(headers_middleware)