We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 43a7026 commit e594a6bCopy full SHA for e594a6b
1 file changed
openedx_authz/api/data.py
@@ -426,9 +426,16 @@ def get_object(self) -> ContentLibrary | None:
426
try:
427
library_key = LibraryLocatorV2.from_string(self.library_id)
428
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
435
cache.set(cache_key, library_obj, self.CACHE_TIMEOUT)
436
return library_obj
- except ContentLibrary.DoesNotExist:
437
438
+ except (InvalidKeyError, ContentLibrary.DoesNotExist):
439
cache.set(cache_key, None, self.CACHE_TIMEOUT)
440
return None
441
0 commit comments