mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-10 03:28:53 +00:00
Merge pull request #24706 from BerriAI/litellm_fix-jwt-none-guard
fix(auth): guard JWTHandler.is_jwt() against None token
This commit is contained in:
commit
5b651048f2
3 changed files with 10 additions and 1 deletions
|
|
@ -89,7 +89,9 @@ class JWTHandler:
|
|||
self.leeway = leeway
|
||||
|
||||
@staticmethod
|
||||
def is_jwt(token: str):
|
||||
def is_jwt(token: Optional[str]) -> bool:
|
||||
if token is None:
|
||||
return False
|
||||
parts = token.split(".")
|
||||
return len(parts) == 3
|
||||
|
||||
|
|
|
|||
|
|
@ -1331,6 +1331,9 @@ def test_jwt_handler_is_jwt_static_method():
|
|||
# Test with empty string
|
||||
assert JWTHandler.is_jwt("") == False
|
||||
|
||||
# Test with None (missing Authorization header)
|
||||
assert JWTHandler.is_jwt(None) == False
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"requested_model, should_work",
|
||||
|
|
|
|||
|
|
@ -567,6 +567,10 @@ class TestJWTOAuth2Coexistence:
|
|||
assert JWTHandler.is_jwt("Bearer token") is False
|
||||
assert JWTHandler.is_jwt("two.parts") is False
|
||||
|
||||
def test_is_jwt_returns_false_for_none(self):
|
||||
"""None token (missing Authorization header) should not be treated as JWT."""
|
||||
assert JWTHandler.is_jwt(None) is False
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_both_enabled_opaque_token_uses_oauth2(self):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue