Minimize expensive reads during authz flow in 3.0/3.11

Patch by Sam Tunnicliffe; reviewed by Francisco Guerrero for CASSANDRA-20293
This commit is contained in:
Sam Tunnicliffe 2025-02-05 12:29:00 +00:00 committed by Francisco Guerrero
parent 7c147ef80e
commit 0b6ae2673e
Failed to extract signature
2 changed files with 5 additions and 3 deletions

View File

@ -1,4 +1,5 @@
3.0.32
* Minimise expensive reads during authz flow in 3.0/3.11 (CASSANDRA-20293)
3.0.31

View File

@ -364,9 +364,9 @@ public class ClientState
if (((FunctionResource)resource).getKeyspace().equals(SystemKeyspace.NAME))
return;
if (resource instanceof DataResource && !(user.isSuper() || user.isSystem()))
if (resource instanceof DataResource)
{
DataResource dataResource = (DataResource)resource;
DataResource dataResource = (DataResource) resource;
if (!dataResource.isRootLevel())
{
String keyspace = dataResource.getKeyspace();
@ -376,7 +376,8 @@ public class ClientState
// see the Permission enum for details.
if (Schema.isSystemKeyspace(keyspace))
{
ensurePermissionOnResourceChain(perm, Resources.chain(dataResource, IResource::hasParent));
if (!(user.isSystem() || user.isSuper()))
ensurePermissionOnResourceChain(perm, Resources.chain(dataResource, IResource::hasParent));
return;
}
}