public class org.apache.cassandra.auth.CassandraLoginModule implements javax.security.auth.spi.LoginModule
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.auth.CassandraLoginModule
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 javax.security.auth.Subject subject;
descriptor: Ljavax/security/auth/Subject;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.callback.CallbackHandler callbackHandler;
descriptor: Ljavax/security/auth/callback/CallbackHandler;
flags: (0x0002) ACC_PRIVATE
private boolean succeeded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean commitSucceeded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String username;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private char[] password;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private org.apache.cassandra.auth.CassandraPrincipal principal;
descriptor: Lorg/apache/cassandra/auth/CassandraPrincipal;
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/CassandraLoginModule;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.auth.CassandraLoginModule.logger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.cassandra.auth.CassandraLoginModule.succeeded:Z
2: aload 0
iconst_0
putfield org.apache.cassandra.auth.CassandraLoginModule.commitSucceeded:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/auth/CassandraLoginModule;
public void initialize(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, java.util.Map<java.lang.String, ?>, java.util.Map<java.lang.String, ?>);
descriptor: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map;Ljava/util/Map;)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
aload 1
putfield org.apache.cassandra.auth.CassandraLoginModule.subject:Ljavax/security/auth/Subject;
1: aload 0
aload 2
putfield org.apache.cassandra.auth.CassandraLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
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/CassandraLoginModule;
0 3 1 subject Ljavax/security/auth/Subject;
0 3 2 callbackHandler Ljavax/security/auth/callback/CallbackHandler;
0 3 3 sharedState Ljava/util/Map<Ljava/lang/String;*>;
0 3 4 options Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map<Ljava/lang/String;*>;Ljava/util/Map<Ljava/lang/String;*>;)V
MethodParameters:
Name Flags
subject
callbackHandler
sharedState
options
public boolean login();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
ifnonnull 3
1: getstatic org.apache.cassandra.auth.CassandraLoginModule.logger:Lorg/slf4j/Logger;
ldc "No CallbackHandler available for authentication"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
2: new javax.security.auth.login.LoginException
dup
ldc "Authentication failed"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
new javax.security.auth.callback.NameCallback
dup
ldc "username: "
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;)V
astore 1
start local 1 4: new javax.security.auth.callback.PasswordCallback
dup
ldc "password: "
iconst_0
invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
astore 2
start local 2 5: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
iconst_2
anewarray javax.security.auth.callback.Callback
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
6: aload 0
aload 1
invokevirtual javax.security.auth.callback.NameCallback.getName:()Ljava/lang/String;
putfield org.apache.cassandra.auth.CassandraLoginModule.username:Ljava/lang/String;
7: aload 2
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
astore 3
start local 3 8: aload 3
ifnonnull 10
9: iconst_0
newarray 5
astore 3
10: StackMap locals: javax.security.auth.callback.NameCallback javax.security.auth.callback.PasswordCallback char[]
StackMap stack:
aload 0
aload 3
arraylength
newarray 5
putfield org.apache.cassandra.auth.CassandraLoginModule.password:[C
11: aload 3
iconst_0
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.password:[C
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 2
invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
end local 3 13: goto 17
14: StackMap locals: org.apache.cassandra.auth.CassandraLoginModule javax.security.auth.callback.NameCallback javax.security.auth.callback.PasswordCallback
StackMap stack: java.lang.Exception
astore 3
start local 3 15: getstatic org.apache.cassandra.auth.CassandraLoginModule.logger:Lorg/slf4j/Logger;
ldc "Unexpected exception processing authentication callbacks"
aload 3
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
16: new javax.security.auth.login.LoginException
dup
ldc "Authentication failed"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 3 17: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.auth.CassandraLoginModule.authenticate:()V
18: goto 23
19: StackMap locals:
StackMap stack: org.apache.cassandra.exceptions.AuthenticationException
astore 3
start local 3 20: aload 0
iconst_0
putfield org.apache.cassandra.auth.CassandraLoginModule.succeeded:Z
21: aload 0
invokevirtual org.apache.cassandra.auth.CassandraLoginModule.cleanUpInternalState:()V
22: new javax.security.auth.login.FailedLoginException
dup
aload 3
invokevirtual org.apache.cassandra.exceptions.AuthenticationException.getMessage:()Ljava/lang/String;
invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
athrow
end local 3 23: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.cassandra.auth.CassandraLoginModule.succeeded:Z
24: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/apache/cassandra/auth/CassandraLoginModule;
4 25 1 nc Ljavax/security/auth/callback/NameCallback;
5 25 2 pc Ljavax/security/auth/callback/PasswordCallback;
8 13 3 tmpPassword [C
15 17 3 e Ljava/lang/Exception;
20 23 3 e Lorg/apache/cassandra/exceptions/AuthenticationException;
Exception table:
from to target type
5 13 14 Class java.io.IOException
5 13 14 Class javax.security.auth.callback.UnsupportedCallbackException
17 18 19 Class org.apache.cassandra.exceptions.AuthenticationException
Exceptions:
throws javax.security.auth.login.LoginException
private void authenticate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=1
start local 0 0: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
invokevirtual org.apache.cassandra.service.StorageService.isAuthSetupComplete:()Z
ifne 2
1: new org.apache.cassandra.exceptions.AuthenticationException
dup
ldc "Cannot login as server authentication setup is not yet completed"
invokespecial org.apache.cassandra.exceptions.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthenticator:()Lorg/apache/cassandra/auth/IAuthenticator;
astore 1
start local 1 3: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 4: aload 2
ldc "username"
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.username:Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 2
ldc "password"
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.password:[C
invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 1
aload 2
invokeinterface org.apache.cassandra.auth.IAuthenticator.legacyAuthenticate:(Ljava/util/Map;)Lorg/apache/cassandra/auth/AuthenticatedUser;
astore 3
start local 3 7: aload 3
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isAnonymous:()Z
ifne 8
aload 3
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSystem:()Z
ifeq 9
8: StackMap locals: org.apache.cassandra.auth.IAuthenticator java.util.Map org.apache.cassandra.auth.AuthenticatedUser
StackMap stack:
new org.apache.cassandra.exceptions.AuthenticationException
dup
ldc "Invalid user %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.apache.cassandra.exceptions.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
aload 3
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getPrimaryRole:()Lorg/apache/cassandra/auth/RoleResource;
invokeinterface org.apache.cassandra.auth.IRoleManager.canLogin:(Lorg/apache/cassandra/auth/RoleResource;)Z
ifne 11
10: new org.apache.cassandra.exceptions.AuthenticationException
dup
new java.lang.StringBuilder
dup
aload 3
invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not permitted to log in"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.apache.cassandra.exceptions.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/cassandra/auth/CassandraLoginModule;
3 12 1 authenticator Lorg/apache/cassandra/auth/IAuthenticator;
4 12 2 credentials Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
7 12 3 user Lorg/apache/cassandra/auth/AuthenticatedUser;
public boolean commit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.succeeded:Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
new org.apache.cassandra.auth.CassandraPrincipal
dup
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.username:Ljava/lang/String;
invokespecial org.apache.cassandra.auth.CassandraPrincipal.<init>:(Ljava/lang/String;)V
putfield org.apache.cassandra.auth.CassandraLoginModule.principal:Lorg/apache/cassandra/auth/CassandraPrincipal;
3: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.principal:Lorg/apache/cassandra/auth/CassandraPrincipal;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 5
4: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.principal:Lorg/apache/cassandra/auth/CassandraPrincipal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.auth.CassandraLoginModule.cleanUpInternalState:()V
6: aload 0
iconst_1
putfield org.apache.cassandra.auth.CassandraLoginModule.commitSucceeded:Z
7: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/auth/CassandraLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
public boolean abort();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.succeeded:Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.commitSucceeded:Z
ifne 7
3: aload 0
iconst_0
putfield org.apache.cassandra.auth.CassandraLoginModule.succeeded:Z
4: aload 0
invokevirtual org.apache.cassandra.auth.CassandraLoginModule.cleanUpInternalState:()V
5: aload 0
aconst_null
putfield org.apache.cassandra.auth.CassandraLoginModule.principal:Lorg/apache/cassandra/auth/CassandraPrincipal;
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.auth.CassandraLoginModule.logout:()Z
pop
8: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/auth/CassandraLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
public boolean logout();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.principal:Lorg/apache/cassandra/auth/CassandraPrincipal;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
1: aload 0
iconst_0
putfield org.apache.cassandra.auth.CassandraLoginModule.succeeded:Z
2: aload 0
invokevirtual org.apache.cassandra.auth.CassandraLoginModule.cleanUpInternalState:()V
3: aload 0
aconst_null
putfield org.apache.cassandra.auth.CassandraLoginModule.principal:Lorg/apache/cassandra/auth/CassandraPrincipal;
4: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/auth/CassandraLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
private void cleanUpInternalState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.apache.cassandra.auth.CassandraLoginModule.username:Ljava/lang/String;
1: aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.password:[C
ifnull 8
2: iconst_0
istore 1
start local 1 3: goto 6
4: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.password:[C
iload 1
bipush 32
castore
5: iinc 1 1
StackMap locals:
StackMap stack:
6: iload 1
aload 0
getfield org.apache.cassandra.auth.CassandraLoginModule.password:[C
arraylength
if_icmplt 4
end local 1 7: aload 0
aconst_null
putfield org.apache.cassandra.auth.CassandraLoginModule.password:[C
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/auth/CassandraLoginModule;
3 7 1 i I
}
SourceFile: "CassandraLoginModule.java"