class org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator implements org.apache.cassandra.auth.IAuthenticator$SaslNegotiator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator
super_class: java.lang.Object
{
private boolean complete;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String username;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String password;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
final org.apache.cassandra.auth.PasswordAuthenticator this$0;
descriptor: Lorg/apache/cassandra/auth/PasswordAuthenticator;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(org.apache.cassandra.auth.PasswordAuthenticator);
descriptor: (Lorg/apache/cassandra/auth/PasswordAuthenticator;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.this$0:Lorg/apache/cassandra/auth/PasswordAuthenticator;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.complete:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/auth/PasswordAuthenticator$PlainTextSaslAuthenticator;
MethodParameters:
Name Flags
this$0 final
public byte[] evaluateResponse(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.decodeCredentials:([B)V
1: aload 0
iconst_1
putfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.complete:Z
2: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/auth/PasswordAuthenticator$PlainTextSaslAuthenticator;
0 3 1 clientResponse [B
Exceptions:
throws org.apache.cassandra.exceptions.AuthenticationException
MethodParameters:
Name Flags
clientResponse
public boolean isComplete();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.complete:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/auth/PasswordAuthenticator$PlainTextSaslAuthenticator;
public org.apache.cassandra.auth.AuthenticatedUser getAuthenticatedUser();
descriptor: ()Lorg/apache/cassandra/auth/AuthenticatedUser;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.complete:Z
ifne 2
1: new org.apache.cassandra.exceptions.AuthenticationException
dup
ldc "SASL negotiation not complete"
invokespecial org.apache.cassandra.exceptions.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.this$0:Lorg/apache/cassandra/auth/PasswordAuthenticator;
aload 0
getfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.username:Ljava/lang/String;
aload 0
getfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.password:Ljava/lang/String;
invokevirtual org.apache.cassandra.auth.PasswordAuthenticator.authenticate:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/auth/AuthenticatedUser;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/auth/PasswordAuthenticator$PlainTextSaslAuthenticator;
Exceptions:
throws org.apache.cassandra.exceptions.AuthenticationException
private void decodeCredentials(byte[]);
descriptor: ([B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.auth.PasswordAuthenticator.logger:Lorg/slf4j/Logger;
ldc "Decoding credentials from client token"
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 1
arraylength
istore 4
start local 4 4: aload 1
arraylength
iconst_1
isub
istore 5
start local 5 5: goto 14
6: StackMap locals: org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator byte[] byte[] byte[] int int
StackMap stack:
aload 1
iload 5
baload
ifne 13
7: aload 3
ifnonnull 9
8: aload 1
iload 5
iconst_1
iadd
iload 4
invokestatic java.util.Arrays.copyOfRange:([BII)[B
astore 3
goto 12
9: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
10: aload 1
iload 5
iconst_1
iadd
iload 4
invokestatic java.util.Arrays.copyOfRange:([BII)[B
astore 2
goto 12
11: StackMap locals:
StackMap stack:
new org.apache.cassandra.exceptions.AuthenticationException
dup
ldc "Credential format error: username or password is empty or contains NUL(\\0) character"
invokespecial org.apache.cassandra.exceptions.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
iload 5
istore 4
13: StackMap locals:
StackMap stack:
iinc 5 -1
StackMap locals:
StackMap stack:
14: iload 5
ifge 6
end local 5 15: aload 3
ifnull 16
aload 3
arraylength
ifne 17
16: StackMap locals:
StackMap stack:
new org.apache.cassandra.exceptions.AuthenticationException
dup
ldc "Password must not be null"
invokespecial org.apache.cassandra.exceptions.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 2
ifnull 18
aload 2
arraylength
ifne 19
18: StackMap locals:
StackMap stack:
new org.apache.cassandra.exceptions.AuthenticationException
dup
ldc "Authentication ID must not be null"
invokespecial org.apache.cassandra.exceptions.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
new java.lang.String
dup
aload 2
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
putfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.username:Ljava/lang/String;
20: aload 0
new java.lang.String
dup
aload 3
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
putfield org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.password:Ljava/lang/String;
21: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/apache/cassandra/auth/PasswordAuthenticator$PlainTextSaslAuthenticator;
0 22 1 bytes [B
2 22 2 user [B
3 22 3 pass [B
4 22 4 end I
5 15 5 i I
Exceptions:
throws org.apache.cassandra.exceptions.AuthenticationException
MethodParameters:
Name Flags
bytes
}
SourceFile: "PasswordAuthenticator.java"
NestHost: org.apache.cassandra.auth.PasswordAuthenticator
InnerClasses:
public abstract SaslNegotiator = org.apache.cassandra.auth.IAuthenticator$SaslNegotiator of org.apache.cassandra.auth.IAuthenticator
private PlainTextSaslAuthenticator = org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator of org.apache.cassandra.auth.PasswordAuthenticator