class com.mongodb.internal.connection.ScramShaAuthenticator extends com.mongodb.internal.connection.SaslAuthenticator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.internal.connection.ScramShaAuthenticator
super_class: com.mongodb.internal.connection.SaslAuthenticator
{
private final com.mongodb.internal.connection.ScramShaAuthenticator$RandomStringGenerator randomStringGenerator;
descriptor: Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator authenticationHashGenerator;
descriptor: Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int MINIMUM_ITERATION_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
private static final java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "n,,"
private static final int RANDOM_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 24
private static final byte[] INT_1;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator DEFAULT_AUTHENTICATION_HASH_GENERATOR;
descriptor: Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator LEGACY_AUTHENTICATION_HASH_GENERATOR;
descriptor: Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_4
newarray 8
dup
iconst_3
iconst_1
bastore
putstatic com.mongodb.internal.connection.ScramShaAuthenticator.INT_1:[B
1: new com.mongodb.internal.connection.ScramShaAuthenticator$1
dup
invokespecial com.mongodb.internal.connection.ScramShaAuthenticator$1.<init>:()V
putstatic com.mongodb.internal.connection.ScramShaAuthenticator.DEFAULT_AUTHENTICATION_HASH_GENERATOR:Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
2: new com.mongodb.internal.connection.ScramShaAuthenticator$2
dup
invokespecial com.mongodb.internal.connection.ScramShaAuthenticator$2.<init>:()V
putstatic com.mongodb.internal.connection.ScramShaAuthenticator.LEGACY_AUTHENTICATION_HASH_GENERATOR:Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.mongodb.internal.connection.MongoCredentialWithCache);
descriptor: (Lcom/mongodb/internal/connection/MongoCredentialWithCache;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
new com.mongodb.internal.connection.ScramShaAuthenticator$DefaultRandomStringGenerator
dup
invokespecial com.mongodb.internal.connection.ScramShaAuthenticator$DefaultRandomStringGenerator.<init>:()V
aload 1
invokevirtual com.mongodb.internal.connection.MongoCredentialWithCache.getAuthenticationMechanism:()Lcom/mongodb/AuthenticationMechanism;
invokestatic com.mongodb.internal.connection.ScramShaAuthenticator.getAuthenicationHashGenerator:(Lcom/mongodb/AuthenticationMechanism;)Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
invokespecial com.mongodb.internal.connection.ScramShaAuthenticator.<init>:(Lcom/mongodb/internal/connection/MongoCredentialWithCache;Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/ScramShaAuthenticator;
0 2 1 credential Lcom/mongodb/internal/connection/MongoCredentialWithCache;
MethodParameters:
Name Flags
credential final
void <init>(com.mongodb.internal.connection.MongoCredentialWithCache, com.mongodb.internal.connection.ScramShaAuthenticator$RandomStringGenerator);
descriptor: (Lcom/mongodb/internal/connection/MongoCredentialWithCache;Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aload 1
invokevirtual com.mongodb.internal.connection.MongoCredentialWithCache.getAuthenticationMechanism:()Lcom/mongodb/AuthenticationMechanism;
invokestatic com.mongodb.internal.connection.ScramShaAuthenticator.getAuthenicationHashGenerator:(Lcom/mongodb/AuthenticationMechanism;)Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
invokespecial com.mongodb.internal.connection.ScramShaAuthenticator.<init>:(Lcom/mongodb/internal/connection/MongoCredentialWithCache;Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/ScramShaAuthenticator;
0 2 1 credential Lcom/mongodb/internal/connection/MongoCredentialWithCache;
0 2 2 randomStringGenerator Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;
MethodParameters:
Name Flags
credential final
randomStringGenerator final
void <init>(com.mongodb.internal.connection.MongoCredentialWithCache, com.mongodb.internal.connection.ScramShaAuthenticator$RandomStringGenerator, com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator);
descriptor: (Lcom/mongodb/internal/connection/MongoCredentialWithCache;Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial com.mongodb.internal.connection.SaslAuthenticator.<init>:(Lcom/mongodb/internal/connection/MongoCredentialWithCache;)V
1: aload 0
aload 2
putfield com.mongodb.internal.connection.ScramShaAuthenticator.randomStringGenerator:Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;
2: aload 0
aload 3
putfield com.mongodb.internal.connection.ScramShaAuthenticator.authenticationHashGenerator:Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/ScramShaAuthenticator;
0 4 1 credential Lcom/mongodb/internal/connection/MongoCredentialWithCache;
0 4 2 randomStringGenerator Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;
0 4 3 authenticationHashGenerator Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
MethodParameters:
Name Flags
credential final
randomStringGenerator final
authenticationHashGenerator final
public java.lang.String getMechanismName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.mongodb.internal.connection.ScramShaAuthenticator.getMongoCredential:()Lcom/mongodb/MongoCredential;
invokevirtual com.mongodb.MongoCredential.getAuthenticationMechanism:()Lcom/mongodb/AuthenticationMechanism;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "Authentication mechanism cannot be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.mongodb.AuthenticationMechanism
StackMap stack:
aload 1
invokevirtual com.mongodb.AuthenticationMechanism.getMechanismName:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/ScramShaAuthenticator;
1 4 1 authMechanism Lcom/mongodb/AuthenticationMechanism;
protected javax.security.sasl.SaslClient createSaslClient(com.mongodb.ServerAddress);
descriptor: (Lcom/mongodb/ServerAddress;)Ljavax/security/sasl/SaslClient;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient
dup
aload 0
aload 0
invokevirtual com.mongodb.internal.connection.ScramShaAuthenticator.getMongoCredentialWithCache:()Lcom/mongodb/internal/connection/MongoCredentialWithCache;
aload 0
getfield com.mongodb.internal.connection.ScramShaAuthenticator.randomStringGenerator:Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;
aload 0
getfield com.mongodb.internal.connection.ScramShaAuthenticator.authenticationHashGenerator:Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
invokespecial com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient.<init>:(Lcom/mongodb/internal/connection/ScramShaAuthenticator;Lcom/mongodb/internal/connection/MongoCredentialWithCache;Lcom/mongodb/internal/connection/ScramShaAuthenticator$RandomStringGenerator;Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/ScramShaAuthenticator;
0 1 1 serverAddress Lcom/mongodb/ServerAddress;
MethodParameters:
Name Flags
serverAddress final
private static com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator getAuthenicationHashGenerator(com.mongodb.AuthenticationMechanism);
descriptor: (Lcom/mongodb/AuthenticationMechanism;)Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.mongodb.AuthenticationMechanism.SCRAM_SHA_1:Lcom/mongodb/AuthenticationMechanism;
if_acmpne 1
getstatic com.mongodb.internal.connection.ScramShaAuthenticator.LEGACY_AUTHENTICATION_HASH_GENERATOR:Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
goto 2
StackMap locals:
StackMap stack:
1: getstatic com.mongodb.internal.connection.ScramShaAuthenticator.DEFAULT_AUTHENTICATION_HASH_GENERATOR:Lcom/mongodb/internal/connection/ScramShaAuthenticator$AuthenticationHashGenerator;
StackMap locals:
StackMap stack: com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 authenticationMechanism Lcom/mongodb/AuthenticationMechanism;
MethodParameters:
Name Flags
authenticationMechanism final
}
SourceFile: "ScramShaAuthenticator.java"
NestMembers:
com.mongodb.internal.connection.ScramShaAuthenticator$1 com.mongodb.internal.connection.ScramShaAuthenticator$2 com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator com.mongodb.internal.connection.ScramShaAuthenticator$CacheKey com.mongodb.internal.connection.ScramShaAuthenticator$CacheValue com.mongodb.internal.connection.ScramShaAuthenticator$DefaultRandomStringGenerator com.mongodb.internal.connection.ScramShaAuthenticator$RandomStringGenerator com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient
InnerClasses:
com.mongodb.internal.connection.ScramShaAuthenticator$1
com.mongodb.internal.connection.ScramShaAuthenticator$2
public abstract AuthenticationHashGenerator = com.mongodb.internal.connection.ScramShaAuthenticator$AuthenticationHashGenerator of com.mongodb.internal.connection.ScramShaAuthenticator
private CacheKey = com.mongodb.internal.connection.ScramShaAuthenticator$CacheKey of com.mongodb.internal.connection.ScramShaAuthenticator
private CacheValue = com.mongodb.internal.connection.ScramShaAuthenticator$CacheValue of com.mongodb.internal.connection.ScramShaAuthenticator
private DefaultRandomStringGenerator = com.mongodb.internal.connection.ScramShaAuthenticator$DefaultRandomStringGenerator of com.mongodb.internal.connection.ScramShaAuthenticator
public abstract RandomStringGenerator = com.mongodb.internal.connection.ScramShaAuthenticator$RandomStringGenerator of com.mongodb.internal.connection.ScramShaAuthenticator
ScramShaSaslClient = com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient of com.mongodb.internal.connection.ScramShaAuthenticator