stac_auth_proxy.middleware.RemoveRootPathMiddleware
¶
Middleware to remove ROOT_PATH from incoming requests and update links in responses.
RemoveRootPathMiddleware
dataclass
¶
Middleware to remove the root path of the request before the checks and the upstream see it.
IMPORTANT: This middleware must be placed early in the middleware chain (ie late in the order of declaration) so that it trims the root_path from the request path before any middleware that may need to use the request path (e.g. EnforceAuthMiddleware). RestoreRootPathMiddleware puts it back before routing.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
Callable[list, Awaitable[None]]
|
|
required |
root_path
|
str
|
|
''
|
Source code in src/stac_auth_proxy/middleware/RemoveRootPathMiddleware.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | |
__call__(scope: Scope, receive: Receive, send: Send) -> None
async
¶
Remove ROOT_PATH from the request path if it exists.
Source code in src/stac_auth_proxy/middleware/RemoveRootPathMiddleware.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | |
__post_init__() -> None
¶
Normalize the root path, as Settings does.
Source code in src/stac_auth_proxy/middleware/RemoveRootPathMiddleware.py
36 37 38 | |
RestoreRootPathMiddleware
dataclass
¶
Put back the root path RemoveRootPathMiddleware removed, so routing (including Mounts) and URLs built from root_path (docs, url_for) see the usual ASGI scope. Request handlers then route on, and the proxy forwards, the path the checks saw.
IMPORTANT: Must be the innermost middleware (first declared).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
Callable[list, Awaitable[None]]
|
|
required |
Source code in src/stac_auth_proxy/middleware/RemoveRootPathMiddleware.py
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |
__call__(scope: Scope, receive: Receive, send: Send) -> None
async
¶
Restore the original path and root_path.
Source code in src/stac_auth_proxy/middleware/RemoveRootPathMiddleware.py
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |