litefs.middleware package
- class litefs.middleware.AuthMiddleware(app, auth_header: str = 'Authorization', token_verifier: Callable[[str], bool] | None = None, jwt_manager=None)[源代码]
基类:
Middleware认证中间件
基于 Bearer Token 的认证中间件,支持自定义验证函数和 JWT 集成
- class litefs.middleware.CORSMiddleware(app, allow_origins: List[str] | None = None, allow_methods: List[str] | None = None, allow_headers: List[str] | None = None, expose_headers: List[str] | None = None, allow_credentials: bool = False, max_age: int = 86400)[源代码]
基类:
MiddlewareCORS 中间件
处理跨域资源共享(CORS)请求,支持配置允许的来源、方法、头部等
- class litefs.middleware.CSRFMiddleware(app, secret_key: str | None = None, token_name: str = 'csrf_token', header_name: str = 'X-CSRFToken', cookie_name: str = 'csrftoken', cookie_secure: bool = False, cookie_http_only: bool = True, cookie_same_site: str = 'Lax', exempt_methods: list | None = None)[源代码]
基类:
MiddlewareCSRF 保护中间件
提供跨站请求伪造防护,通过生成和验证 CSRF 令牌来保护表单提交
- class litefs.middleware.EnhancedLoggingMiddleware(app, logger: Logger | None = None, structured: bool = False, sensitive_params: List[str] | None = None, exclude_paths: List[str] | None = None, log_request_body: bool = False, log_response_body: bool = False, max_body_length: int = 1000)[源代码]
基类:
Middleware增强的日志中间件
功能特性: - 请求追踪:为每个请求生成唯一 ID - 结构化日志:支持 JSON 格式输出 - 性能监控:记录详细的性能指标 - 敏感信息过滤:自动过滤敏感参数 - 智能日志级别:根据响应状态码自动调整
- SENSITIVE_PARAMS = ['password', 'passwd', 'pwd', 'token', 'access_token', 'refresh_token', 'secret', 'api_key', 'apikey', 'credit_card', 'card_number', 'ssn', 'social_security_number']
- class litefs.middleware.HealthCheck(app, path: str = '/health', ready_path: str = '/health/ready')[源代码]
基类:
Middleware健康检查中间件
提供 /health 和 /health/ready 端点用于健康检查
- add_check(name: str, check_func: Callable[[], bool])[源代码]
添加健康检查
- 参数:
name -- 检查名称
check_func -- 检查函数,返回 True 表示健康,False 表示不健康
- class litefs.middleware.LoggingMiddleware(app, logger: Logger | None = None)[源代码]
基类:
Middleware日志中间件
记录所有请求和响应的详细信息,包括请求时间、响应时间、状态码等
- class litefs.middleware.Middleware(app)[源代码]
基类:
object中间件基类
所有中间件都应该继承此类并实现 process_request 和/或 process_response 方法。
支持同步和异步两种模式: - 同步模式:实现 process_request / process_response / process_exception - 异步模式:实现 async_process_request / async_process_response / async_process_exception
异步方法优先级高于同步方法。在 ASGI 路径中,如果中间件实现了异步方法, 将使用异步调用;否则回退到同步调用(通过 run_in_executor 避免阻塞事件循环)。
- async async_process_exception(request_handler, exception)[源代码]
处理异常(异步版本)
默认实现调用同步版本的 process_exception。 子类可以覆盖此方法来实现真正的异步逻辑。
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应,不抛出异常
- 返回类型:
None
- async async_process_request(request_handler)[源代码]
处理请求,在请求到达业务逻辑之前执行(异步版本)
默认实现调用同步版本的 process_request。 子类可以覆盖此方法来实现真正的异步逻辑。
- 参数:
request_handler -- 请求处理器实例
- 返回:
继续处理请求 其他值: 直接返回该值作为响应,中断后续处理
- 返回类型:
None
- async async_process_response(request_handler, response)[源代码]
处理响应,在响应返回给客户端之前执行(异步版本)
默认实现调用同步版本的 process_response。 子类可以覆盖此方法来实现真正的异步逻辑。
- 参数:
request_handler -- 请求处理器实例
response -- 响应数据
- 返回:
修改后的响应数据
- process_exception(request_handler, exception)[源代码]
处理异常(同步版本)
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应,不抛出异常
- 返回类型:
None
- class litefs.middleware.MiddlewareManager[源代码]
基类:
object中间件管理器
负责管理所有中间件的注册、加载和执行。 同时支持同步(WSGI)和异步(ASGI)调用路径。
- add(middleware_class, **kwargs)[源代码]
添加中间件
- 参数:
middleware_class -- 中间件类
**kwargs -- 传递给中间件构造函数的参数
- 返回:
支持链式调用
- 返回类型:
self
- async async_process_exception(request_handler, exception)[源代码]
按顺序执行所有中间件的异常处理(异步)
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应
- 返回类型:
None
- async async_process_request(request_handler)[源代码]
按顺序执行所有中间件的请求处理(异步)
对于实现了 async_process_request 的中间件,使用 await 调用; 对于仅有同步 process_request 的中间件,使用 run_in_executor 避免阻塞事件循环。
- 参数:
request_handler -- 请求处理器实例
- 返回:
继续处理请求 其他值: 直接返回该值作为响应
- 返回类型:
None
- async async_process_response(request_handler, response)[源代码]
按逆序执行所有中间件的响应处理(异步)
- 参数:
request_handler -- 请求处理器实例
response -- 响应数据
- 返回:
处理后的响应数据
- process_exception(request_handler, exception)[源代码]
按顺序执行所有中间件的 process_exception 方法(同步)
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应
- 返回类型:
None
- process_request(request_handler)[源代码]
按顺序执行所有中间件的 process_request 方法(同步)
- 参数:
request_handler -- 请求处理器实例
- 返回:
继续处理请求 其他值: 直接返回该值作为响应
- 返回类型:
None
- class litefs.middleware.PrometheusMiddleware(app, path: str = '/metrics', namespace: str = 'litefs', buckets: Sequence[float] | None = None, exclude_paths: Sequence[str] | None = None)[源代码]
基类:
MiddlewarePrometheus 监控中间件
挂载方式:
app.add_middleware(PrometheusMiddleware)
指定暴露路径与命名空间:
app.add_middleware(PrometheusMiddleware, path='/internal/metrics', namespace='myapp')
- async async_process_exception(request_handler, exception)[源代码]
异步版本的处理异常
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常
- 返回类型:
None
- async async_process_request(request_handler)[源代码]
异步版本的处理请求
- 参数:
request_handler -- 请求处理器实例
- 返回:
继续处理请求 三元组: 指标端点命中时直接返回响应
- 返回类型:
None
- async async_process_response(request_handler, response)[源代码]
异步版本的处理响应
- 参数:
request_handler -- 请求处理器实例
response -- 响应数据
- 返回:
未修改的响应数据
- process_exception(request_handler, exception)[源代码]
处理异常,补记一次错误指标
业务异常通常在路由执行阶段被框架捕获并转为 500 响应, 此处仅作为兜底(如 ASGI 的 HttpError),避免指标重复计数。
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常
- 返回类型:
None
- class litefs.middleware.RateLimitMiddleware(app, max_requests: int = 100, window_seconds: int = 60, key_func: callable | None = None, block_duration: int = 60)[源代码]
基类:
Middleware限流中间件
基于令牌桶算法实现请求限流,支持按 IP 地址或用户限流
- class litefs.middleware.RequestContextLogger(request_handler)[源代码]
基类:
object请求上下文日志记录器
提供在请求上下文中记录日志的便捷方法
- class litefs.middleware.SecurityMiddleware(app, x_frame_options: str = 'DENY', x_content_type_options: str = 'nosniff', x_xss_protection: str = '1; mode=block', strict_transport_security: str = 'max-age=31536000; includeSubDomains', content_security_policy: str | None = None, referrer_policy: str = 'strict-origin-when-cross-origin', permissions_policy: str | None = None)[源代码]
基类:
Middleware安全中间件
添加各种安全相关的 HTTP 响应头,提高应用安全性
- class litefs.middleware.ThrottleMiddleware(app, min_interval: float = 0.1, key_func: callable | None = None)[源代码]
基类:
Middleware节流中间件
控制请求的处理速率,防止服务器过载
- litefs.middleware.log_async_performance(func)[源代码]
异步性能日志装饰器
用于记录异步函数执行时间
- 参数:
func -- 被装饰的异步函数
- 返回:
装饰后的异步函数
Submodules
litefs.middleware.base module
- class litefs.middleware.base.Middleware(app)[源代码]
基类:
object中间件基类
所有中间件都应该继承此类并实现 process_request 和/或 process_response 方法。
支持同步和异步两种模式: - 同步模式:实现 process_request / process_response / process_exception - 异步模式:实现 async_process_request / async_process_response / async_process_exception
异步方法优先级高于同步方法。在 ASGI 路径中,如果中间件实现了异步方法, 将使用异步调用;否则回退到同步调用(通过 run_in_executor 避免阻塞事件循环)。
- async async_process_exception(request_handler, exception)[源代码]
处理异常(异步版本)
默认实现调用同步版本的 process_exception。 子类可以覆盖此方法来实现真正的异步逻辑。
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应,不抛出异常
- 返回类型:
None
- async async_process_request(request_handler)[源代码]
处理请求,在请求到达业务逻辑之前执行(异步版本)
默认实现调用同步版本的 process_request。 子类可以覆盖此方法来实现真正的异步逻辑。
- 参数:
request_handler -- 请求处理器实例
- 返回:
继续处理请求 其他值: 直接返回该值作为响应,中断后续处理
- 返回类型:
None
- async async_process_response(request_handler, response)[源代码]
处理响应,在响应返回给客户端之前执行(异步版本)
默认实现调用同步版本的 process_response。 子类可以覆盖此方法来实现真正的异步逻辑。
- 参数:
request_handler -- 请求处理器实例
response -- 响应数据
- 返回:
修改后的响应数据
- process_exception(request_handler, exception)[源代码]
处理异常(同步版本)
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应,不抛出异常
- 返回类型:
None
- class litefs.middleware.base.MiddlewareManager[源代码]
基类:
object中间件管理器
负责管理所有中间件的注册、加载和执行。 同时支持同步(WSGI)和异步(ASGI)调用路径。
- add(middleware_class, **kwargs)[源代码]
添加中间件
- 参数:
middleware_class -- 中间件类
**kwargs -- 传递给中间件构造函数的参数
- 返回:
支持链式调用
- 返回类型:
self
- async async_process_exception(request_handler, exception)[源代码]
按顺序执行所有中间件的异常处理(异步)
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应
- 返回类型:
None
- async async_process_request(request_handler)[源代码]
按顺序执行所有中间件的请求处理(异步)
对于实现了 async_process_request 的中间件,使用 await 调用; 对于仅有同步 process_request 的中间件,使用 run_in_executor 避免阻塞事件循环。
- 参数:
request_handler -- 请求处理器实例
- 返回:
继续处理请求 其他值: 直接返回该值作为响应
- 返回类型:
None
- async async_process_response(request_handler, response)[源代码]
按逆序执行所有中间件的响应处理(异步)
- 参数:
request_handler -- 请求处理器实例
response -- 响应数据
- 返回:
处理后的响应数据
- process_exception(request_handler, exception)[源代码]
按顺序执行所有中间件的 process_exception 方法(同步)
- 参数:
request_handler -- 请求处理器实例
exception -- 异常对象
- 返回:
继续抛出异常 其他值: 返回该值作为响应
- 返回类型:
None
- process_request(request_handler)[源代码]
按顺序执行所有中间件的 process_request 方法(同步)
- 参数:
request_handler -- 请求处理器实例
- 返回:
继续处理请求 其他值: 直接返回该值作为响应
- 返回类型:
None
litefs.middleware.cors module
- class litefs.middleware.cors.CORSMiddleware(app, allow_origins: List[str] | None = None, allow_methods: List[str] | None = None, allow_headers: List[str] | None = None, expose_headers: List[str] | None = None, allow_credentials: bool = False, max_age: int = 86400)[源代码]
基类:
MiddlewareCORS 中间件
处理跨域资源共享(CORS)请求,支持配置允许的来源、方法、头部等
litefs.middleware.health_check module
- class litefs.middleware.health_check.HealthCheck(app, path: str = '/health', ready_path: str = '/health/ready')[源代码]
基类:
Middleware健康检查中间件
提供 /health 和 /health/ready 端点用于健康检查
- add_check(name: str, check_func: Callable[[], bool])[源代码]
添加健康检查
- 参数:
name -- 检查名称
check_func -- 检查函数,返回 True 表示健康,False 表示不健康
litefs.middleware.logging module
- class litefs.middleware.logging.LoggingMiddleware(app, logger: Logger | None = None)[源代码]
基类:
Middleware日志中间件
记录所有请求和响应的详细信息,包括请求时间、响应时间、状态码等
litefs.middleware.rate_limit module
- class litefs.middleware.rate_limit.RateLimitMiddleware(app, max_requests: int = 100, window_seconds: int = 60, key_func: callable | None = None, block_duration: int = 60)[源代码]
基类:
Middleware限流中间件
基于令牌桶算法实现请求限流,支持按 IP 地址或用户限流
- class litefs.middleware.rate_limit.ThrottleMiddleware(app, min_interval: float = 0.1, key_func: callable | None = None)[源代码]
基类:
Middleware节流中间件
控制请求的处理速率,防止服务器过载
litefs.middleware.security module
- class litefs.middleware.security.AuthMiddleware(app, auth_header: str = 'Authorization', token_verifier: Callable[[str], bool] | None = None, jwt_manager=None)[源代码]
基类:
Middleware认证中间件
基于 Bearer Token 的认证中间件,支持自定义验证函数和 JWT 集成
- class litefs.middleware.security.SecurityMiddleware(app, x_frame_options: str = 'DENY', x_content_type_options: str = 'nosniff', x_xss_protection: str = '1; mode=block', strict_transport_security: str = 'max-age=31536000; includeSubDomains', content_security_policy: str | None = None, referrer_policy: str = 'strict-origin-when-cross-origin', permissions_policy: str | None = None)[源代码]
基类:
Middleware安全中间件
添加各种安全相关的 HTTP 响应头,提高应用安全性