mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-12 23:01:41 +00:00
* [internal copy of #29089] fix: duplicate claude code traces (#29311) * refactor(proxy/auth): normalize Bearer prefix in safe-hash helper (#29343) * refactor(proxy/auth): normalize Bearer prefix in safe-hash helper UserAPIKeyAuth._safe_hash_litellm_api_key now strips a leading "Bearer "/"bearer " prefix before its existing sk-/JWT classification, so the helper produces the same hashed output regardless of whether the caller stripped the Authorization header prefix or passed the header value through unchanged. * refactor(proxy/auth): make Bearer-prefix strip case-insensitive Per RFC 7235 the HTTP authorization scheme token is case-insensitive. Replace the two-prefix loop with a single case-insensitive check so the helper normalizes "Bearer ", "bearer ", "BEARER ", and any mixed-case variant before classifying the remainder as sk- or JWT. The contract test gains coverage of "BEARER " and "BeArEr ". * test(mcp): align auth-handler test expectations with safe-hash helper The two MCP auth tests asserted that UserAPIKeyAuth(api_key="Bearer ...") retained the raw header bytes on the api_key field. _safe_hash_litellm_api_key now normalizes that input — stripping the Bearer prefix and hashing the resulting sk- key — so the expectations move to the normalized form: the bare token in the parametrize case, and hash_token("sk-...") in the backward-compat assertion. This matches what the real auth flow produces (the builder strips Bearer and the DB stores the hashed token), so the mocks now line up with production rather than with the un-normalized validator output. --------- Co-authored-by: yuneng-jiang <yuneng@berri.ai> |
||
|---|---|---|
| .. | ||
| messages_api_structured_output | ||
| base_anthropic_messages_prompt_caching_test.py | ||
| base_anthropic_messages_tool_search_test.py | ||
| base_anthropic_unified_messages_test.py | ||
| conftest.py | ||
| test_anthropic_messages_passthrough.py | ||
| test_anthropic_messages_prompt_caching.py | ||
| test_anthropic_messages_tool_search.py | ||
| test_assemblyai_unit_tests_passthrough.py | ||
| test_bedrock_anthropic_messages_test.py | ||
| test_bedrock_tool_use_beta_header.py | ||
| test_claude_code_marketplace.py | ||
| test_custom_logger_passthrough.py | ||
| test_pass_through_unit_tests.py | ||
| test_passthrough_registry_updates.py | ||
| test_unit_test_anthropic_pass_through.py | ||
| test_unit_test_passthrough_router.py | ||
| test_unit_test_streaming.py | ||
| test_vertex_ai_anthropic_streaming_cost_injection.py | ||
| test_vertex_ai_live_passthrough.py | ||
| test_websearch_interception_e2e.py | ||