Middleware and decorator for processing TLSv1.3 early data requests in Starlette
Project description
starlette-early-data
Middleware and decorator for processing TLSv1.3 early data requests in Starlette
What this package can do:
- Detect if request is early data and mark it (
request.state.early_data = True
) - Deny all early data requests (pass
deny_all=True
toadd_middleware
) - Deny early data requests to specific endpoints (use decorator
@deny_early_data
)
Example (test.py
):
import uvicorn
from starlette.applications import Starlette
from starlette.requests import Request
from starlette.responses import PlainTextResponse
from starlette_early_data import EarlyDataMiddleware, deny_early_data
app = Starlette()
app.add_middleware(EarlyDataMiddleware, deny_all=False)
@app.route("/")
async def home(request: Request) -> PlainTextResponse:
return PlainTextResponse("Always OK if deny_all=False")
@app.route("/security_risk")
@deny_early_data
async def security_risk(request: Request) -> PlainTextResponse:
return PlainTextResponse("Security action done after handshake")
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8080)
Send request to http://127.0.0.1:8080/security_risk
with header Early-Data=1
and you will get 425.
Request to http://127.0.0.1:8080/
with the same header will only return 425 if you pass deny_all=True
to app.add_middleware(...)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for starlette-early-data-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a089fe7fb42780ce99df935a05f64dece220e4b274c21b492af12383a722aeb8 |
|
MD5 | 5933cf28262fa443ac89d04196ccbc56 |
|
BLAKE2b-256 | cf0bf67f848f17d43bcfeff04f9d1ba83436f35e173c74e0809fbbe0395db3f5 |
Close
Hashes for starlette_early_data-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08072488864b6f7bb1f98a7af6794d118e7593de1a460d67ccd04c191bd6fd1a |
|
MD5 | bf1f2c094647828d81b195a852f5448c |
|
BLAKE2b-256 | fa2f7781f77b71f993ec9f216362c189fdd9e274d4703cf0db80a3af818bde12 |