mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-20 00:11:50 +00:00
Adds a JWT node to the authenticator chain, dispatched on credential shape (3-part token, not a sk- key). authlib owns the crypto: JWKS fetch with TTL caching, kid-based key selection, signature verification, and exp/iss/aud validation. A thin framework-free layer maps verified claims to an identity using configurable claim names and an explicit upstream-role to litellm-role map; unmapped role values are dropped rather than trusted. JWT settings come from general_settings.auth_v2_jwt (or AUTH_V2_JWKS_URI etc.). Verification failures normalize to 401 so callers never branch on authlib's internal exception types. Tests cover signature tampering, expiry, wrong audience/issuer, unknown signer, and garbage input on the verifier, plus claim extraction and role mapping. |
||
|---|---|---|
| .. | ||
| v2 | ||
| test_admin_viewer_handler_access.py | ||
| test_auth_checks.py | ||
| test_auth_exception_handler.py | ||
| test_auth_hot_path_network_requests.py | ||
| test_auth_utils.py | ||
| test_banned_params_extra_body.py | ||
| test_cli_auth.py | ||
| test_custom_auth_end_user_budget.py | ||
| test_handle_jwt.py | ||
| test_info_routes.py | ||
| test_litellm_license.py | ||
| test_login_utils.py | ||
| test_mcp_ip_filtering.py | ||
| test_model_checks.py | ||
| test_model_checks_fallbacks.py | ||
| test_multi_budget_windows.py | ||
| test_oauth2_proxy_hook.py | ||
| test_object_permission_loading.py | ||
| test_onboarding.py | ||
| test_organization_budget_enforcement.py | ||
| test_password_hashing.py | ||
| test_route_checks.py | ||
| test_router_override_fallback_auth.py | ||
| test_team_member_budget.py | ||
| test_unmapped_model_budget_enforcement.py | ||
| test_user_api_key_auth.py | ||