public class org.apache.cassandra.cql3.statements.ListPermissionsStatement extends org.apache.cassandra.cql3.statements.AuthorizationStatement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.cql3.statements.ListPermissionsStatement
super_class: org.apache.cassandra.cql3.statements.AuthorizationStatement
{
private static final java.lang.String KS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "system_auth"
private static final java.lang.String CF;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "permissions"
private static final java.util.List<org.apache.cassandra.cql3.ColumnSpecification> metadata;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnSpecification;>;
protected final java.util.Set<org.apache.cassandra.auth.Permission> permissions;
descriptor: Ljava/util/Set;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
protected org.apache.cassandra.auth.IResource resource;
descriptor: Lorg/apache/cassandra/auth/IResource;
flags: (0x0004) ACC_PROTECTED
protected final boolean recursive;
descriptor: Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final org.apache.cassandra.auth.RoleResource grantee;
descriptor: Lorg/apache/cassandra/auth/RoleResource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=1, args_size=0
0: new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
astore 0
start local 0 1: aload 0
new org.apache.cassandra.cql3.ColumnSpecification
dup
ldc "system_auth"
ldc "permissions"
new org.apache.cassandra.cql3.ColumnIdentifier
dup
ldc "role"
iconst_1
invokespecial org.apache.cassandra.cql3.ColumnIdentifier.<init>:(Ljava/lang/String;Z)V
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
invokespecial org.apache.cassandra.cql3.ColumnSpecification.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnIdentifier;Lorg/apache/cassandra/db/marshal/AbstractType;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 0
new org.apache.cassandra.cql3.ColumnSpecification
dup
ldc "system_auth"
ldc "permissions"
new org.apache.cassandra.cql3.ColumnIdentifier
dup
ldc "username"
iconst_1
invokespecial org.apache.cassandra.cql3.ColumnIdentifier.<init>:(Ljava/lang/String;Z)V
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
invokespecial org.apache.cassandra.cql3.ColumnSpecification.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnIdentifier;Lorg/apache/cassandra/db/marshal/AbstractType;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 0
new org.apache.cassandra.cql3.ColumnSpecification
dup
ldc "system_auth"
ldc "permissions"
new org.apache.cassandra.cql3.ColumnIdentifier
dup
ldc "resource"
iconst_1
invokespecial org.apache.cassandra.cql3.ColumnIdentifier.<init>:(Ljava/lang/String;Z)V
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
invokespecial org.apache.cassandra.cql3.ColumnSpecification.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnIdentifier;Lorg/apache/cassandra/db/marshal/AbstractType;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
new org.apache.cassandra.cql3.ColumnSpecification
dup
ldc "system_auth"
ldc "permissions"
new org.apache.cassandra.cql3.ColumnIdentifier
dup
ldc "permission"
iconst_1
invokespecial org.apache.cassandra.cql3.ColumnIdentifier.<init>:(Ljava/lang/String;Z)V
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
invokespecial org.apache.cassandra.cql3.ColumnSpecification.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnIdentifier;Lorg/apache/cassandra/db/marshal/AbstractType;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putstatic org.apache.cassandra.cql3.statements.ListPermissionsStatement.metadata:Ljava/util/List;
end local 0 6: return
LocalVariableTable:
Start End Slot Name Signature
1 6 0 columns Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnSpecification;>;
public void <init>(java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.cql3.RoleName, );
descriptor: (Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/cql3/RoleName;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial org.apache.cassandra.cql3.statements.AuthorizationStatement.<init>:()V
1: aload 0
aload 1
putfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.permissions:Ljava/util/Set;
2: aload 0
aload 2
putfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
3: aload 0
iload 4
putfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.recursive:Z
4: aload 0
aload 3
invokevirtual org.apache.cassandra.cql3.RoleName.hasName:()Z
ifeq 5
aload 3
invokevirtual org.apache.cassandra.cql3.RoleName.getName:()Ljava/lang/String;
invokestatic org.apache.cassandra.auth.RoleResource.role:(Ljava/lang/String;)Lorg/apache/cassandra/auth/RoleResource;
goto 6
StackMap locals: org.apache.cassandra.cql3.statements.ListPermissionsStatement java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.cql3.RoleName int
StackMap stack: org.apache.cassandra.cql3.statements.ListPermissionsStatement
5: aconst_null
StackMap locals: org.apache.cassandra.cql3.statements.ListPermissionsStatement java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.cql3.RoleName int
StackMap stack: org.apache.cassandra.cql3.statements.ListPermissionsStatement org.apache.cassandra.auth.RoleResource
6: putfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.grantee:Lorg/apache/cassandra/auth/RoleResource;
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/cql3/statements/ListPermissionsStatement;
0 8 1 permissions Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
0 8 2 resource Lorg/apache/cassandra/auth/IResource;
0 8 3 grantee Lorg/apache/cassandra/cql3/RoleName;
0 8 4 recursive Z
Signature: (Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/cql3/RoleName;Z)V
MethodParameters:
Name Flags
permissions
resource
grantee
recursive
public void validate(org.apache.cassandra.service.ClientState);
descriptor: (Lorg/apache/cassandra/service/ClientState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.apache.cassandra.service.ClientState.ensureNotAnonymous:()V
1: aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
ifnull 5
2: aload 0
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
aload 1
invokestatic org.apache.cassandra.cql3.statements.ListPermissionsStatement.maybeCorrectResource:(Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/auth/IResource;
putfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
3: aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
invokeinterface org.apache.cassandra.auth.IResource.exists:()Z
ifne 5
4: new org.apache.cassandra.exceptions.InvalidRequestException
dup
ldc "%s doesn't exist"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.grantee:Lorg/apache/cassandra/auth/RoleResource;
ifnull 7
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.grantee:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IRoleManager.isExistingRole:(Lorg/apache/cassandra/auth/RoleResource;)Z
ifne 7
6: new org.apache.cassandra.exceptions.InvalidRequestException
dup
ldc "%s doesn't exist"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.grantee:Lorg/apache/cassandra/auth/RoleResource;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/cql3/statements/ListPermissionsStatement;
0 8 1 state Lorg/apache/cassandra/service/ClientState;
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException
MethodParameters:
Name Flags
state
public void checkAccess(org.apache.cassandra.service.ClientState);
descriptor: (Lorg/apache/cassandra/service/ClientState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/statements/ListPermissionsStatement;
0 1 1 state Lorg/apache/cassandra/service/ClientState;
MethodParameters:
Name Flags
state
public org.apache.cassandra.transport.messages.ResultMessage execute(org.apache.cassandra.service.ClientState);
descriptor: (Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/transport/messages/ResultMessage;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
ifnull 7
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.recursive:Z
ifeq 7
2: aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
invokestatic org.apache.cassandra.auth.Resources.chain:(Lorg/apache/cassandra/auth/IResource;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: org.apache.cassandra.cql3.statements.ListPermissionsStatement org.apache.cassandra.service.ClientState java.util.List top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.auth.IResource
astore 3
start local 3 4: aload 2
aload 0
aload 1
aload 3
invokevirtual org.apache.cassandra.cql3.statements.ListPermissionsStatement.list:(Lorg/apache/cassandra/service/ClientState;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: goto 8
7: StackMap locals: org.apache.cassandra.cql3.statements.ListPermissionsStatement org.apache.cassandra.service.ClientState java.util.List
StackMap stack:
aload 2
aload 0
aload 1
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.resource:Lorg/apache/cassandra/auth/IResource;
invokevirtual org.apache.cassandra.cql3.statements.ListPermissionsStatement.list:(Lorg/apache/cassandra/service/ClientState;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
8: StackMap locals:
StackMap stack:
aload 2
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
9: aload 0
aload 2
invokevirtual org.apache.cassandra.cql3.statements.ListPermissionsStatement.resultMessage:(Ljava/util/List;)Lorg/apache/cassandra/transport/messages/ResultMessage;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/cql3/statements/ListPermissionsStatement;
0 10 1 state Lorg/apache/cassandra/service/ClientState;
1 10 2 details Ljava/util/List<Lorg/apache/cassandra/auth/PermissionDetails;>;
4 5 3 r Lorg/apache/cassandra/auth/IResource;
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
MethodParameters:
Name Flags
state
private java.util.Set<org.apache.cassandra.auth.PermissionDetails> list(org.apache.cassandra.service.ClientState, org.apache.cassandra.auth.IResource);
descriptor: (Lorg/apache/cassandra/service/ClientState;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthorizer:()Lorg/apache/cassandra/auth/IAuthorizer;
aload 1
invokevirtual org.apache.cassandra.service.ClientState.getUser:()Lorg/apache/cassandra/auth/AuthenticatedUser;
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.permissions:Ljava/util/Set;
aload 2
aload 0
getfield org.apache.cassandra.cql3.statements.ListPermissionsStatement.grantee:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IAuthorizer.list:(Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.UnsupportedOperationException
astore 3
start local 3 3: new org.apache.cassandra.exceptions.InvalidRequestException
dup
aload 3
invokevirtual java.lang.UnsupportedOperationException.getMessage:()Ljava/lang/String;
invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/cql3/statements/ListPermissionsStatement;
0 4 1 state Lorg/apache/cassandra/service/ClientState;
0 4 2 resource Lorg/apache/cassandra/auth/IResource;
3 4 3 e Ljava/lang/UnsupportedOperationException;
Exception table:
from to target type
0 1 2 Class java.lang.UnsupportedOperationException
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
Signature: (Lorg/apache/cassandra/service/ClientState;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
MethodParameters:
Name Flags
state
resource
private org.apache.cassandra.transport.messages.ResultMessage resultMessage(java.util.List<org.apache.cassandra.auth.PermissionDetails>);
descriptor: (Ljava/util/List;)Lorg/apache/cassandra/transport/messages/ResultMessage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: new org.apache.cassandra.transport.messages.ResultMessage$Void
dup
invokespecial org.apache.cassandra.transport.messages.ResultMessage$Void.<init>:()V
areturn
2: StackMap locals:
StackMap stack:
new org.apache.cassandra.cql3.ResultSet
dup
getstatic org.apache.cassandra.cql3.statements.ListPermissionsStatement.metadata:Ljava/util/List;
invokespecial org.apache.cassandra.cql3.ResultSet.<init>:(Ljava/util/List;)V
astore 2
start local 2 3: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: org.apache.cassandra.cql3.statements.ListPermissionsStatement java.util.List org.apache.cassandra.cql3.ResultSet top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.auth.PermissionDetails
astore 3
start local 3 5: aload 2
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
aload 3
getfield org.apache.cassandra.auth.PermissionDetails.grantee:Ljava/lang/String;
invokevirtual org.apache.cassandra.db.marshal.UTF8Type.decompose:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.cql3.ResultSet.addColumnValue:(Ljava/nio/ByteBuffer;)V
6: aload 2
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
aload 3
getfield org.apache.cassandra.auth.PermissionDetails.grantee:Ljava/lang/String;
invokevirtual org.apache.cassandra.db.marshal.UTF8Type.decompose:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.cql3.ResultSet.addColumnValue:(Ljava/nio/ByteBuffer;)V
7: aload 2
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
aload 3
getfield org.apache.cassandra.auth.PermissionDetails.resource:Lorg/apache/cassandra/auth/IResource;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual org.apache.cassandra.db.marshal.UTF8Type.decompose:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.cql3.ResultSet.addColumnValue:(Ljava/nio/ByteBuffer;)V
8: aload 2
getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
aload 3
getfield org.apache.cassandra.auth.PermissionDetails.permission:Lorg/apache/cassandra/auth/Permission;
invokevirtual org.apache.cassandra.auth.Permission.toString:()Ljava/lang/String;
invokevirtual org.apache.cassandra.db.marshal.UTF8Type.decompose:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.cql3.ResultSet.addColumnValue:(Ljava/nio/ByteBuffer;)V
end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
10: new org.apache.cassandra.transport.messages.ResultMessage$Rows
dup
aload 2
invokespecial org.apache.cassandra.transport.messages.ResultMessage$Rows.<init>:(Lorg/apache/cassandra/cql3/ResultSet;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/cql3/statements/ListPermissionsStatement;
0 11 1 details Ljava/util/List<Lorg/apache/cassandra/auth/PermissionDetails;>;
3 11 2 result Lorg/apache/cassandra/cql3/ResultSet;
5 9 3 pd Lorg/apache/cassandra/auth/PermissionDetails;
Signature: (Ljava/util/List<Lorg/apache/cassandra/auth/PermissionDetails;>;)Lorg/apache/cassandra/transport/messages/ResultMessage;
MethodParameters:
Name Flags
details
}
SourceFile: "ListPermissionsStatement.java"
InnerClasses:
public Rows = org.apache.cassandra.transport.messages.ResultMessage$Rows of org.apache.cassandra.transport.messages.ResultMessage
public Void = org.apache.cassandra.transport.messages.ResultMessage$Void of org.apache.cassandra.transport.messages.ResultMessage