public class org.apache.cassandra.auth.CassandraAuthorizer implements org.apache.cassandra.auth.IAuthorizer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.auth.CassandraAuthorizer
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String ROLE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "role"
private static final java.lang.String RESOURCE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "resource"
private static final java.lang.String PERMISSIONS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "permissions"
public static final java.lang.String USERNAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "username"
public static final java.lang.String USER_PERMISSIONS;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "permissions"
private org.apache.cassandra.cql3.statements.SelectStatement authorizeRoleStatement;
descriptor: Lorg/apache/cassandra/cql3/statements/SelectStatement;
flags: (0x0002) ACC_PRIVATE
private org.apache.cassandra.cql3.statements.SelectStatement legacyAuthorizeRoleStatement;
descriptor: Lorg/apache/cassandra/cql3/statements/SelectStatement;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/auth/CassandraAuthorizer;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
public java.util.Set<org.apache.cassandra.auth.Permission> authorize(org.apache.cassandra.auth.AuthenticatedUser, org.apache.cassandra.auth.IResource);
descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSuper:()Z
ifeq 3
1: aload 2
invokeinterface org.apache.cassandra.auth.IResource.applicablePermissions:()Ljava/util/Set;
2: areturn
3: StackMap locals:
StackMap stack:
ldc Lorg/apache/cassandra/auth/Permission;
invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
astore 3
start local 3 4: aload 1
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getRoles:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser org.apache.cassandra.auth.IResource java.util.Set top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.auth.RoleResource
astore 4
start local 4 6: aload 0
aload 3
aload 2
aload 4
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.addPermissionsForRole:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 3
9: areturn
end local 3 10: StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser org.apache.cassandra.auth.IResource
StackMap stack: org.apache.cassandra.exceptions.CassandraException
astore 3
start local 3 11: getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
ldc "Failed to authorize {} for {}"
aload 1
aload 2
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
12: new org.apache.cassandra.exceptions.UnauthorizedException
dup
new java.lang.StringBuilder
dup
ldc "Unable to perform authorization of permissions: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual org.apache.cassandra.exceptions.CassandraException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial org.apache.cassandra.exceptions.UnauthorizedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 13 1 user Lorg/apache/cassandra/auth/AuthenticatedUser;
0 13 2 resource Lorg/apache/cassandra/auth/IResource;
4 10 3 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
6 7 4 role Lorg/apache/cassandra/auth/RoleResource;
11 13 3 e Lorg/apache/cassandra/exceptions/CassandraException;
Exception table:
from to target type
0 2 10 Class org.apache.cassandra.exceptions.RequestExecutionException
3 9 10 Class org.apache.cassandra.exceptions.RequestExecutionException
0 2 10 Class org.apache.cassandra.exceptions.RequestValidationException
3 9 10 Class org.apache.cassandra.exceptions.RequestValidationException
Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
MethodParameters:
Name Flags
user
resource
public void grant(org.apache.cassandra.auth.AuthenticatedUser, java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 2
aload 3
aload 4
ldc "+"
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.modifyRolePermissions:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
1: aload 0
aload 3
aload 4
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.addLookupEntry:(Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 3 1 performer Lorg/apache/cassandra/auth/AuthenticatedUser;
0 3 2 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
0 3 3 resource Lorg/apache/cassandra/auth/IResource;
0 3 4 grantee Lorg/apache/cassandra/auth/RoleResource;
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
MethodParameters:
Name Flags
performer
permissions
resource
grantee
public void revoke(org.apache.cassandra.auth.AuthenticatedUser, java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 2
aload 3
aload 4
ldc "-"
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.modifyRolePermissions:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
1: aload 0
aload 3
aload 4
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.removeLookupEntry:(Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 3 1 performer Lorg/apache/cassandra/auth/AuthenticatedUser;
0 3 2 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
0 3 3 resource Lorg/apache/cassandra/auth/IResource;
0 3 4 revokee Lorg/apache/cassandra/auth/RoleResource;
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
MethodParameters:
Name Flags
performer
permissions
resource
revokee
public void revokeAllFrom(org.apache.cassandra.auth.RoleResource);
descriptor: (Lorg/apache/cassandra/auth/RoleResource;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=2
start local 0 start local 1 0: aload 0
ldc "SELECT resource FROM %s.%s WHERE role = '%s'"
iconst_3
anewarray java.lang.Object
dup
iconst_0
1: ldc "system_auth"
aastore
dup
iconst_1
2: ldc "role_permissions"
aastore
dup
iconst_2
3: aload 0
aload 1
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
astore 2
start local 2 5: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 6: aload 2
invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
astore 5
goto 19
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.RoleResource org.apache.cassandra.cql3.UntypedResultSet java.util.List top java.util.Iterator
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
astore 4
start local 4 8: aload 3
9: ldc "DELETE FROM %s.%s WHERE resource = '%s' AND role = '%s'"
iconst_4
anewarray java.lang.Object
dup
iconst_0
10: ldc "system_auth"
aastore
dup
iconst_1
11: ldc "resource_role_permissons_index"
aastore
dup
iconst_2
12: aload 0
aload 4
ldc "resource"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_3
13: aload 0
aload 1
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
14: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
15: invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
16: invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
17: getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
18: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 19: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
20: aload 3
ldc "DELETE FROM %s.%s WHERE role = '%s'"
iconst_3
anewarray java.lang.Object
dup
iconst_0
21: ldc "system_auth"
aastore
dup
iconst_1
22: ldc "role_permissions"
aastore
dup
iconst_2
23: aload 0
aload 1
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
24: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
25: invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
26: invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
27: getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
28: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
29: aload 0
aload 3
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.executeLoggedBatch:(Ljava/util/List;)V
end local 3 end local 2 30: goto 33
31: StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.RoleResource
StackMap stack: org.apache.cassandra.exceptions.CassandraException
astore 2
start local 2 32: getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
ldc "CassandraAuthorizer failed to revoke all permissions of {}: {}"
aload 1
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
aload 2
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 2 33: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 34 1 revokee Lorg/apache/cassandra/auth/RoleResource;
5 30 2 rows Lorg/apache/cassandra/cql3/UntypedResultSet;
6 30 3 statements Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;
8 19 4 row Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
32 33 2 e Lorg/apache/cassandra/exceptions/CassandraException;
Exception table:
from to target type
0 30 31 Class org.apache.cassandra.exceptions.RequestExecutionException
0 30 31 Class org.apache.cassandra.exceptions.RequestValidationException
MethodParameters:
Name Flags
revokee
public void revokeAllOn(org.apache.cassandra.auth.IResource);
descriptor: (Lorg/apache/cassandra/auth/IResource;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=2
start local 0 start local 1 0: aload 0
ldc "SELECT role FROM %s.%s WHERE resource = '%s'"
iconst_3
anewarray java.lang.Object
dup
iconst_0
1: ldc "system_auth"
aastore
dup
iconst_1
2: ldc "resource_role_permissons_index"
aastore
dup
iconst_2
3: aload 0
aload 1
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
astore 2
start local 2 5: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 6: aload 2
invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
astore 5
goto 18
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.IResource org.apache.cassandra.cql3.UntypedResultSet java.util.List top java.util.Iterator
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
astore 4
start local 4 8: aload 3
ldc "DELETE FROM %s.%s WHERE role = '%s' AND resource = '%s'"
iconst_4
anewarray java.lang.Object
dup
iconst_0
9: ldc "system_auth"
aastore
dup
iconst_1
10: ldc "role_permissions"
aastore
dup
iconst_2
11: aload 0
aload 4
ldc "role"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_3
12: aload 0
aload 1
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
13: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
14: invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
15: invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
16: getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
17: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 18: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
19: aload 3
ldc "DELETE FROM %s.%s WHERE resource = '%s'"
iconst_3
anewarray java.lang.Object
dup
iconst_0
20: ldc "system_auth"
aastore
dup
iconst_1
21: ldc "resource_role_permissons_index"
aastore
dup
iconst_2
22: aload 0
aload 1
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
23: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
24: invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
25: invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
26: getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
27: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
28: aload 0
aload 3
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.executeLoggedBatch:(Ljava/util/List;)V
end local 3 end local 2 29: goto 33
30: StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.IResource
StackMap stack: org.apache.cassandra.exceptions.CassandraException
astore 2
start local 2 31: getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
ldc "CassandraAuthorizer failed to revoke all permissions on {}: {}"
aload 1
aload 2
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
32: return
end local 2 33: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 34 1 droppedResource Lorg/apache/cassandra/auth/IResource;
5 29 2 rows Lorg/apache/cassandra/cql3/UntypedResultSet;
6 29 3 statements Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;
8 18 4 row Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
31 33 2 e Lorg/apache/cassandra/exceptions/CassandraException;
Exception table:
from to target type
0 29 30 Class org.apache.cassandra.exceptions.RequestExecutionException
0 29 30 Class org.apache.cassandra.exceptions.RequestValidationException
MethodParameters:
Name Flags
droppedResource
private void executeLoggedBatch(java.util.List<org.apache.cassandra.cql3.CQLStatement>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: new org.apache.cassandra.cql3.statements.BatchStatement
dup
iconst_0
1: getstatic org.apache.cassandra.cql3.statements.BatchStatement$Type.LOGGED:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
2: aload 1
ldc Lorg/apache/cassandra/cql3/statements/ModificationStatement;
invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Ljava/lang/Class;)Ljava/lang/Iterable;
invokestatic com.google.common.collect.Lists.newArrayList:(Ljava/lang/Iterable;)Ljava/util/ArrayList;
3: invokestatic org.apache.cassandra.cql3.Attributes.none:()Lorg/apache/cassandra/cql3/Attributes;
4: invokespecial org.apache.cassandra.cql3.statements.BatchStatement.<init>:(ILorg/apache/cassandra/cql3/statements/BatchStatement$Type;Ljava/util/List;Lorg/apache/cassandra/cql3/Attributes;)V
astore 2
start local 2 5: getstatic org.apache.cassandra.cql3.QueryProcessor.instance:Lorg/apache/cassandra/cql3/QueryProcessor;
aload 2
6: invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
7: getstatic org.apache.cassandra.cql3.QueryOptions.DEFAULT:Lorg/apache/cassandra/cql3/QueryOptions;
invokestatic org.apache.cassandra.cql3.BatchQueryOptions.withoutPerStatementVariables:(Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/BatchQueryOptions;
8: invokestatic java.lang.System.nanoTime:()J
9: invokevirtual org.apache.cassandra.cql3.QueryProcessor.processBatch:(Lorg/apache/cassandra/cql3/statements/BatchStatement;Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/BatchQueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
pop
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 11 1 statements Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;
5 11 2 batch Lorg/apache/cassandra/cql3/statements/BatchStatement;
Exceptions:
throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
Signature: (Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;)V
MethodParameters:
Name Flags
statements
private void addPermissionsForRole(java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
descriptor: (Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
iconst_2
anewarray java.nio.ByteBuffer
dup
iconst_0
1: aload 3
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokestatic org.apache.cassandra.utils.ByteBufferUtil.bytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
aastore
dup
iconst_1
2: aload 2
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokestatic org.apache.cassandra.utils.ByteBufferUtil.bytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
aastore
3: invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
4: invokestatic org.apache.cassandra.cql3.QueryOptions.forInternalCalls:(Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;)Lorg/apache/cassandra/cql3/QueryOptions;
astore 4
start local 4 5: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
ldc "system_auth"
ldc "permissions"
invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
ifnonnull 8
6: aload 0
getfield org.apache.cassandra.auth.CassandraAuthorizer.authorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
astore 5
start local 5 7: goto 11
end local 5 8: StackMap locals: org.apache.cassandra.cql3.QueryOptions
StackMap stack:
aload 0
getfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
ifnonnull 10
9: aload 0
aload 0
ldc "username"
ldc "permissions"
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.prepare:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
putfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
10: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
astore 5
start local 5 11: StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement
StackMap stack:
aload 5
invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
aload 4
invokestatic java.lang.System.nanoTime:()J
invokevirtual org.apache.cassandra.cql3.statements.SelectStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage$Rows;
astore 6
start local 6 12: aload 6
getfield org.apache.cassandra.transport.messages.ResultMessage$Rows.result:Lorg/apache/cassandra/cql3/ResultSet;
invokestatic org.apache.cassandra.cql3.UntypedResultSet.create:(Lorg/apache/cassandra/cql3/ResultSet;)Lorg/apache/cassandra/cql3/UntypedResultSet;
astore 7
start local 7 13: aload 7
invokevirtual org.apache.cassandra.cql3.UntypedResultSet.isEmpty:()Z
ifne 18
aload 7
invokevirtual org.apache.cassandra.cql3.UntypedResultSet.one:()Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
ldc "permissions"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.has:(Ljava/lang/String;)Z
ifeq 18
14: aload 7
invokevirtual org.apache.cassandra.cql3.UntypedResultSet.one:()Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
ldc "permissions"
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getSet:(Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 17
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource org.apache.cassandra.cql3.QueryOptions org.apache.cassandra.cql3.statements.SelectStatement org.apache.cassandra.transport.messages.ResultMessage$Rows org.apache.cassandra.cql3.UntypedResultSet top java.util.Iterator
StackMap stack:
15: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 16: aload 1
aload 8
invokestatic org.apache.cassandra.auth.Permission.valueOf:(Ljava/lang/String;)Lorg/apache/cassandra/auth/Permission;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 8 17: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
18: StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource org.apache.cassandra.cql3.QueryOptions org.apache.cassandra.cql3.statements.SelectStatement org.apache.cassandra.transport.messages.ResultMessage$Rows org.apache.cassandra.cql3.UntypedResultSet
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 19 1 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
0 19 2 resource Lorg/apache/cassandra/auth/IResource;
0 19 3 role Lorg/apache/cassandra/auth/RoleResource;
5 19 4 options Lorg/apache/cassandra/cql3/QueryOptions;
7 8 5 statement Lorg/apache/cassandra/cql3/statements/SelectStatement;
11 19 5 statement Lorg/apache/cassandra/cql3/statements/SelectStatement;
12 19 6 rows Lorg/apache/cassandra/transport/messages/ResultMessage$Rows;
13 19 7 result Lorg/apache/cassandra/cql3/UntypedResultSet;
16 17 8 perm Ljava/lang/String;
Exceptions:
throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
Signature: (Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
MethodParameters:
Name Flags
permissions
resource
role
private void modifyRolePermissions(java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource, java.lang.String);
descriptor: (Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
ldc "UPDATE %s.%s SET permissions = permissions %s {%s} WHERE role = '%s' AND resource = '%s'"
bipush 6
anewarray java.lang.Object
dup
iconst_0
1: ldc "system_auth"
aastore
dup
iconst_1
2: ldc "role_permissions"
aastore
dup
iconst_2
3: aload 4
aastore
dup
iconst_3
4: new java.lang.StringBuilder
dup
ldc "'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
ldc "','"
invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_4
5: aload 0
aload 3
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_5
6: aload 0
aload 2
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
7: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
pop
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 9 1 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
0 9 2 resource Lorg/apache/cassandra/auth/IResource;
0 9 3 role Lorg/apache/cassandra/auth/RoleResource;
0 9 4 op Ljava/lang/String;
Exceptions:
throws org.apache.cassandra.exceptions.RequestExecutionException
Signature: (Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
MethodParameters:
Name Flags
permissions
resource
role
op
private void removeLookupEntry(org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
descriptor: (Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "DELETE FROM %s.%s WHERE resource = '%s' and role = '%s'"
iconst_4
anewarray java.lang.Object
dup
iconst_0
1: ldc "system_auth"
aastore
dup
iconst_1
2: ldc "resource_role_permissons_index"
aastore
dup
iconst_2
3: aload 0
aload 1
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_3
4: aload 0
aload 2
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
5: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 7 1 resource Lorg/apache/cassandra/auth/IResource;
0 7 2 role Lorg/apache/cassandra/auth/RoleResource;
Exceptions:
throws org.apache.cassandra.exceptions.RequestExecutionException
MethodParameters:
Name Flags
resource
role
private void addLookupEntry(org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
descriptor: (Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "INSERT INTO %s.%s (resource, role) VALUES ('%s','%s')"
iconst_4
anewarray java.lang.Object
dup
iconst_0
1: ldc "system_auth"
aastore
dup
iconst_1
2: ldc "resource_role_permissons_index"
aastore
dup
iconst_2
3: aload 0
aload 1
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_3
4: aload 0
aload 2
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
aastore
5: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 7 1 resource Lorg/apache/cassandra/auth/IResource;
0 7 2 role Lorg/apache/cassandra/auth/RoleResource;
Exceptions:
throws org.apache.cassandra.exceptions.RequestExecutionException
MethodParameters:
Name Flags
resource
role
public java.util.Set<org.apache.cassandra.auth.PermissionDetails> list(org.apache.cassandra.auth.AuthenticatedUser, java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSuper:()Z
ifne 6
aload 1
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSystem:()Z
ifne 6
aload 1
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getRoles:()Ljava/util/Set;
aload 4
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 6
1: new org.apache.cassandra.exceptions.UnauthorizedException
dup
ldc "You are not authorized to view %s's permissions"
iconst_1
anewarray java.lang.Object
dup
iconst_0
2: aload 4
ifnonnull 3
ldc "everyone"
goto 4
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource
StackMap stack: new 1 new 1 java.lang.String java.lang.Object[] java.lang.Object[] int
3: aload 4
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource
StackMap stack: new 1 new 1 java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
4: aastore
5: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.apache.cassandra.exceptions.UnauthorizedException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 4
ifnonnull 8
7: aload 0
aload 2
aload 3
aload 4
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.listPermissionsForRole:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
areturn
8: StackMap locals:
StackMap stack:
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
aload 4
iconst_1
invokeinterface org.apache.cassandra.auth.IRoleManager.getRoles:(Lorg/apache/cassandra/auth/RoleResource;Z)Ljava/util/Set;
astore 5
start local 5 9: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
start local 6 10: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 13
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
11: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.auth.RoleResource
astore 7
start local 7 12: aload 6
aload 0
aload 2
aload 3
aload 7
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.listPermissionsForRole:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
end local 7 13: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 15 1 performer Lorg/apache/cassandra/auth/AuthenticatedUser;
0 15 2 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
0 15 3 resource Lorg/apache/cassandra/auth/IResource;
0 15 4 grantee Lorg/apache/cassandra/auth/RoleResource;
9 15 5 roles Ljava/util/Set<Lorg/apache/cassandra/auth/RoleResource;>;
10 15 6 details Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
12 13 7 role Lorg/apache/cassandra/auth/RoleResource;
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
MethodParameters:
Name Flags
performer
permissions
resource
grantee
private java.util.Set<org.apache.cassandra.auth.PermissionDetails> listPermissionsForRole(java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
descriptor: (Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 4
start local 4 1: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
ldc "system_auth"
ldc "permissions"
invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
ifnull 2
iconst_1
goto 3
StackMap locals: java.util.Set
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 5
start local 5 4: iload 5
ifeq 5
ldc "username"
goto 6
StackMap locals: int
StackMap stack:
5: ldc "role"
StackMap locals:
StackMap stack: java.lang.String
6: astore 6
start local 6 7: aload 0
aload 0
aload 2
aload 3
iload 5
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.buildListQuery:(Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Z)Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
astore 8
goto 19
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set int java.lang.String top java.util.Iterator
StackMap stack:
8: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
astore 7
start local 7 9: aload 7
ldc "permissions"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.has:(Ljava/lang/String;)Z
ifeq 19
10: aload 7
ldc "permissions"
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getSet:(Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 18
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set int java.lang.String org.apache.cassandra.cql3.UntypedResultSet$Row java.util.Iterator top java.util.Iterator
StackMap stack:
11: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 12: aload 9
invokestatic org.apache.cassandra.auth.Permission.valueOf:(Ljava/lang/String;)Lorg/apache/cassandra/auth/Permission;
astore 11
start local 11 13: aload 1
aload 11
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 18
14: aload 4
new org.apache.cassandra.auth.PermissionDetails
dup
aload 7
aload 6
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
15: aload 7
ldc "resource"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
invokestatic org.apache.cassandra.auth.Resources.fromName:(Ljava/lang/String;)Lorg/apache/cassandra/auth/IResource;
16: aload 11
invokespecial org.apache.cassandra.auth.PermissionDetails.<init>:(Ljava/lang/String;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/Permission;)V
17: invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 9 18: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
end local 7 19: StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set int java.lang.String top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
20: aload 4
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 21 1 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
0 21 2 resource Lorg/apache/cassandra/auth/IResource;
0 21 3 role Lorg/apache/cassandra/auth/RoleResource;
1 21 4 details Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
4 21 5 useLegacyTable Z
7 21 6 entityColumnName Ljava/lang/String;
9 19 7 row Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
12 18 9 p Ljava/lang/String;
13 18 11 permission Lorg/apache/cassandra/auth/Permission;
Exceptions:
throws org.apache.cassandra.exceptions.RequestExecutionException
Signature: (Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
MethodParameters:
Name Flags
permissions
resource
role
private java.lang.String buildListQuery(org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource, boolean);
descriptor: (Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Z)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 1
ldc "permissions"
goto 2
StackMap locals:
StackMap stack:
1: ldc "role_permissions"
StackMap locals:
StackMap stack: java.lang.String
2: astore 4
start local 4 3: iload 3
ifeq 4
ldc "username"
goto 5
StackMap locals: java.lang.String
StackMap stack:
4: ldc "role"
StackMap locals:
StackMap stack: java.lang.String
5: astore 5
start local 5 6: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "system_auth"
aastore
dup
iconst_1
aload 4
aastore
invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
astore 6
start local 6 7: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 8: aload 1
ifnull 11
9: aload 7
ldc "resource = '%s'"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: aload 6
aload 0
aload 1
invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: StackMap locals: java.lang.String java.util.List java.util.List
StackMap stack:
aload 2
ifnull 14
12: aload 7
new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " = '%s'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: aload 6
aload 0
aload 2
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "SELECT "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", resource, permissions FROM %s.%s"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 15: aload 7
invokeinterface java.util.List.isEmpty:()Z
ifne 17
16: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " WHERE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
ldc " AND "
invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
17: StackMap locals: java.lang.String
StackMap stack:
aload 1
ifnull 19
aload 2
ifnonnull 19
18: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " ALLOW FILTERING"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
19: StackMap locals:
StackMap stack:
aload 8
aload 6
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 20 1 resource Lorg/apache/cassandra/auth/IResource;
0 20 2 grantee Lorg/apache/cassandra/auth/RoleResource;
0 20 3 useLegacyTable Z
3 20 4 tableName Ljava/lang/String;
6 20 5 entityName Ljava/lang/String;
7 20 6 vars Ljava/util/List<Ljava/lang/String;>;
8 20 7 conditions Ljava/util/List<Ljava/lang/String;>;
15 20 8 query Ljava/lang/String;
MethodParameters:
Name Flags
resource
grantee
useLegacyTable
public java.util.Set<org.apache.cassandra.auth.DataResource> protectedResources();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "system_auth"
ldc "role_permissions"
invokestatic org.apache.cassandra.auth.DataResource.table:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/auth/DataResource;
invokestatic com.google.common.collect.ImmutableSet.of:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
Signature: ()Ljava/util/Set<Lorg/apache/cassandra/auth/DataResource;>;
public void validateConfiguration();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
Exceptions:
throws org.apache.cassandra.exceptions.ConfigurationException
public void setup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
aload 0
ldc "role"
ldc "role_permissions"
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.prepare:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
putfield org.apache.cassandra.auth.CassandraAuthorizer.authorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
1: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
ldc "system_auth"
ldc "permissions"
invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
ifnull 6
2: aload 0
aload 0
ldc "username"
ldc "permissions"
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.prepare:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
putfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
3: getstatic org.apache.cassandra.concurrent.ScheduledExecutors.optionalTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
new org.apache.cassandra.auth.CassandraAuthorizer$1
dup
aload 0
invokespecial org.apache.cassandra.auth.CassandraAuthorizer$1.<init>:(Lorg/apache/cassandra/auth/CassandraAuthorizer;)V
4: getstatic org.apache.cassandra.auth.AuthKeyspace.SUPERUSER_SETUP_DELAY:J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
5: invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
pop
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
private org.apache.cassandra.cql3.statements.SelectStatement prepare(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: ldc "SELECT permissions FROM %s.%s WHERE %s = ? AND resource = ?"
iconst_3
anewarray java.lang.Object
dup
iconst_0
1: ldc "system_auth"
aastore
dup
iconst_1
2: aload 2
aastore
dup
iconst_2
3: aload 1
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 5: aload 3
invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
checkcast org.apache.cassandra.cql3.statements.SelectStatement
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 6 1 entityname Ljava/lang/String;
0 6 2 permissionsTable Ljava/lang/String;
5 6 3 query Ljava/lang/String;
MethodParameters:
Name Flags
entityname
permissionsTable
private void convertLegacyData();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=1
start local 0 0: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
ldc "system_auth"
ldc "permissions"
invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
ifnull 49
1: getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
ldc "Converting legacy permissions data"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
2: ldc "INSERT INTO %s.%s (role, resource, permissions) VALUES (?, ?, ?)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
3: ldc "system_auth"
aastore
dup
iconst_1
4: ldc "role_permissions"
aastore
5: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
6: invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
7: invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
8: getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
9: astore 1
start local 1 10: ldc "INSERT INTO %s.%s (resource, role) VALUES (?,?)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
11: ldc "system_auth"
aastore
dup
iconst_1
12: ldc "resource_role_permissons_index"
aastore
13: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
14: invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
15: invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
16: getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
17: astore 2
start local 2 18: aload 0
ldc "SELECT * FROM system_auth.permissions"
invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
astore 3
start local 3 19: aload 3
invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
astore 5
goto 43
StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.cql3.CQLStatement org.apache.cassandra.cql3.CQLStatement org.apache.cassandra.cql3.UntypedResultSet top java.util.Iterator
StackMap stack:
20: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
astore 4
start local 4 21: aload 4
ldc "resource"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
invokestatic org.apache.cassandra.auth.Resources.fromName:(Ljava/lang/String;)Lorg/apache/cassandra/auth/IResource;
astore 6
start local 6 22: new org.apache.cassandra.auth.CassandraAuthorizer$2
dup
aload 0
aload 6
invokespecial org.apache.cassandra.auth.CassandraAuthorizer$2.<init>:(Lorg/apache/cassandra/auth/CassandraAuthorizer;Lorg/apache/cassandra/auth/IResource;)V
astore 7
start local 7 23: getstatic org.apache.cassandra.serializers.UTF8Serializer.instance:Lorg/apache/cassandra/serializers/UTF8Serializer;
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
invokestatic org.apache.cassandra.serializers.SetSerializer.getInstance:(Lorg/apache/cassandra/serializers/TypeSerializer;Ljava/util/Comparator;)Lorg/apache/cassandra/serializers/SetSerializer;
astore 8
start local 8 24: aload 8
aload 4
ldc "permissions"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.serializers.SetSerializer.deserialize:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
checkcast java.util.Set
astore 9
start local 9 25: aload 9
aload 7
invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
invokestatic com.google.common.collect.ImmutableSet.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableSet;
astore 10
start local 10 26: aload 1
invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
27: getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
iconst_3
anewarray java.nio.ByteBuffer
dup
iconst_0
28: aload 4
ldc "username"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
aastore
dup
iconst_1
29: aload 4
ldc "resource"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
aastore
dup
iconst_2
30: aload 8
aload 10
invokevirtual org.apache.cassandra.serializers.SetSerializer.serialize:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
aastore
31: invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
32: invokestatic org.apache.cassandra.cql3.QueryOptions.forInternalCalls:(Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;)Lorg/apache/cassandra/cql3/QueryOptions;
33: invokestatic java.lang.System.nanoTime:()J
34: invokeinterface org.apache.cassandra.cql3.CQLStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
pop
35: aload 2
invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
36: getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
iconst_2
anewarray java.nio.ByteBuffer
dup
iconst_0
37: aload 4
ldc "resource"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
aastore
dup
iconst_1
38: aload 4
ldc "username"
invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
aastore
39: invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
40: invokestatic org.apache.cassandra.cql3.QueryOptions.forInternalCalls:(Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;)Lorg/apache/cassandra/cql3/QueryOptions;
41: invokestatic java.lang.System.nanoTime:()J
42: invokeinterface org.apache.cassandra.cql3.CQLStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
pop
end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 43: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
44: getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
ldc "Completed conversion of legacy permissions"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
end local 3 end local 2 end local 1 45: goto 49
46: StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer
StackMap stack: java.lang.Exception
astore 1
start local 1 47: getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
ldc "Unable to complete conversion of legacy permissions data (perhaps not enough nodes are upgraded yet). Conversion should not be considered complete"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
48: getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
ldc "Conversion error"
aload 1
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 49: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
10 45 1 insertStatement Lorg/apache/cassandra/cql3/CQLStatement;
18 45 2 indexStatement Lorg/apache/cassandra/cql3/CQLStatement;
19 45 3 permissions Lorg/apache/cassandra/cql3/UntypedResultSet;
21 43 4 row Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
22 43 6 resource Lorg/apache/cassandra/auth/IResource;
23 43 7 isApplicable Lcom/google/common/base/Predicate<Ljava/lang/String;>;
24 43 8 serializer Lorg/apache/cassandra/serializers/SetSerializer<Ljava/lang/String;>;
25 43 9 originalPerms Ljava/util/Set<Ljava/lang/String;>;
26 43 10 filteredPerms Ljava/util/Set<Ljava/lang/String;>;
47 49 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 45 46 Class java.lang.Exception
private java.lang.String escape(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "'"
ldc "''"
invokestatic org.apache.commons.lang3.StringUtils.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private org.apache.cassandra.cql3.UntypedResultSet process(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
invokestatic org.apache.cassandra.cql3.QueryProcessor.process:(Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/cql3/UntypedResultSet;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/auth/CassandraAuthorizer;
0 1 1 query Ljava/lang/String;
Exceptions:
throws org.apache.cassandra.exceptions.RequestExecutionException
MethodParameters:
Name Flags
query
}
SourceFile: "CassandraAuthorizer.java"
NestMembers:
org.apache.cassandra.auth.CassandraAuthorizer$1 org.apache.cassandra.auth.CassandraAuthorizer$2
InnerClasses:
org.apache.cassandra.auth.CassandraAuthorizer$1
org.apache.cassandra.auth.CassandraAuthorizer$2
public Row = org.apache.cassandra.cql3.UntypedResultSet$Row of org.apache.cassandra.cql3.UntypedResultSet
public final Type = org.apache.cassandra.cql3.statements.BatchStatement$Type of org.apache.cassandra.cql3.statements.BatchStatement
public Prepared = org.apache.cassandra.cql3.statements.ParsedStatement$Prepared of org.apache.cassandra.cql3.statements.ParsedStatement
public Rows = org.apache.cassandra.transport.messages.ResultMessage$Rows of org.apache.cassandra.transport.messages.ResultMessage