Skip to content

Commit 6762874

Browse files
committed
feat: enhance library key validation in ContentLibraryData to ensure exact match
1 parent 843c3a4 commit 6762874

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

openedx_authz/api/data.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,16 @@ def get_object(self) -> ContentLibrary | None:
426426
try:
427427
library_key = LibraryLocatorV2.from_string(self.library_id)
428428
library_obj = ContentLibrary.objects.get_by_key(library_key=library_key)
429+
430+
# Validate canonical key: get_by_key is case-insensitive, but we require exact match
431+
# This ensures authorization uses canonical library IDs consistently
432+
if library_obj.library_key != library_key:
433+
raise ContentLibrary.DoesNotExist
434+
429435
cache.set(cache_key, library_obj, self.CACHE_TIMEOUT)
430436
return library_obj
431-
except ContentLibrary.DoesNotExist:
437+
438+
except (InvalidKeyError, ContentLibrary.DoesNotExist):
432439
cache.set(cache_key, None, self.CACHE_TIMEOUT)
433440
return None
434441

0 commit comments

Comments
 (0)