feat: Add Basic Authentication Middleware
Basic Authentication Middleware
This MR adds a complete Basic Authentication middleware implementation for FastAPI.
Features
-
✅ HTTP Basic Authentication support -
✅ Configurable username/password -
✅ Path exclusion (for health checks, docs, etc.) -
✅ Secure constant-time credential comparison -
✅ Custom authentication realm -
✅ Comprehensive test coverage -
✅ Full documentation
Files Added
-
middleware/basic_auth.py- Main middleware implementation -
middleware/__init__.py- Package initialization -
tests/test_basic_auth.py- Complete test suite -
middleware/README.md- Usage documentation
Usage Example
from fastapi import FastAPI
from middleware.basic_auth import BasicAuthMiddleware
app = FastAPI()
app.add_middleware(
BasicAuthMiddleware,
username="admin",
password="secret",
exclude_paths=["/health", "/docs"]
)
Testing
All tests pass:
pytest tests/test_basic_auth.py -v
Security Notes
- Uses
secrets.compare_digest()for timing-attack prevention - Supports path exclusion for public endpoints
- Should be used with HTTPS in production