public class org.apache.cassandra.cql3.statements.DropRoleStatement extends org.apache.cassandra.cql3.statements.AuthenticationStatement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.cql3.statements.DropRoleStatement
super_class: org.apache.cassandra.cql3.statements.AuthenticationStatement
{
private final org.apache.cassandra.auth.RoleResource role;
descriptor: Lorg/apache/cassandra/auth/RoleResource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean ifExists;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.apache.cassandra.cql3.RoleName, boolean);
descriptor: (Lorg/apache/cassandra/cql3/RoleName;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.apache.cassandra.cql3.statements.AuthenticationStatement.<init>:()V
1: aload 0
aload 1
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;
putfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
2: aload 0
iload 2
putfield org.apache.cassandra.cql3.statements.DropRoleStatement.ifExists:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/cql3/statements/DropRoleStatement;
0 4 1 name Lorg/apache/cassandra/cql3/RoleName;
0 4 2 ifExists Z
MethodParameters:
Name Flags
name
ifExists
public void checkAccess(org.apache.cassandra.service.ClientState);
descriptor: (Lorg/apache/cassandra/service/ClientState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic org.apache.cassandra.auth.Permission.DROP:Lorg/apache/cassandra/auth/Permission;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokespecial org.apache.cassandra.cql3.statements.AuthenticationStatement.checkPermission:(Lorg/apache/cassandra/service/ClientState;Lorg/apache/cassandra/auth/Permission;Lorg/apache/cassandra/auth/RoleResource;)V
1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IRoleManager.isExistingRole:(Lorg/apache/cassandra/auth/RoleResource;)Z
ifeq 5
2: aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokestatic org.apache.cassandra.auth.Roles.hasSuperuserStatus:(Lorg/apache/cassandra/auth/RoleResource;)Z
ifeq 5
3: aload 1
invokevirtual org.apache.cassandra.service.ClientState.getUser:()Lorg/apache/cassandra/auth/AuthenticatedUser;
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSuper:()Z
ifne 5
4: new org.apache.cassandra.exceptions.UnauthorizedException
dup
ldc "Only superusers can drop a role with superuser status"
invokespecial org.apache.cassandra.exceptions.UnauthorizedException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/cql3/statements/DropRoleStatement;
0 6 1 state Lorg/apache/cassandra/service/ClientState;
Exceptions:
throws org.apache.cassandra.exceptions.UnauthorizedException
MethodParameters:
Name Flags
state
public void validate(org.apache.cassandra.service.ClientState);
descriptor: (Lorg/apache/cassandra/service/ClientState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, 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.DropRoleStatement.ifExists:Z
ifne 3
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IRoleManager.isExistingRole:(Lorg/apache/cassandra/auth/RoleResource;)Z
ifne 3
2: 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.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
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
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.apache.cassandra.service.ClientState.getUser:()Lorg/apache/cassandra/auth/AuthenticatedUser;
astore 2
start local 2 4: aload 2
ifnull 6
aload 2
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getName:()Ljava/lang/String;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: new org.apache.cassandra.exceptions.InvalidRequestException
dup
ldc "Cannot DROP primary role for current login"
invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: org.apache.cassandra.auth.AuthenticatedUser
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/cql3/statements/DropRoleStatement;
0 7 1 state Lorg/apache/cassandra/service/ClientState;
4 7 2 user Lorg/apache/cassandra/auth/AuthenticatedUser;
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException
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=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.ifExists:Z
ifeq 2
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IRoleManager.isExistingRole:(Lorg/apache/cassandra/auth/RoleResource;)Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
aload 1
invokevirtual org.apache.cassandra.service.ClientState.getUser:()Lorg/apache/cassandra/auth/AuthenticatedUser;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IRoleManager.dropRole:(Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/RoleResource;)V
3: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthorizer:()Lorg/apache/cassandra/auth/IAuthorizer;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IAuthorizer.revokeAllFrom:(Lorg/apache/cassandra/auth/RoleResource;)V
4: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthorizer:()Lorg/apache/cassandra/auth/IAuthorizer;
aload 0
getfield org.apache.cassandra.cql3.statements.DropRoleStatement.role:Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IAuthorizer.revokeAllOn:(Lorg/apache/cassandra/auth/IResource;)V
5: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/cql3/statements/DropRoleStatement;
0 6 1 state Lorg/apache/cassandra/service/ClientState;
Exceptions:
throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
MethodParameters:
Name Flags
state
}
SourceFile: "DropRoleStatement.java"