public class io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl
super_class: java.lang.Object
{
private static io.vertx.core.logging.Logger LOG;
descriptor: Lio/vertx/core/logging/Logger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/vertx/proton/sasl/impl/ProtonSaslMechanismFinderImpl;
invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
putstatic io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl.LOG:Lio/vertx/core/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/proton/sasl/impl/ProtonSaslMechanismFinderImpl;
public static io.vertx.proton.sasl.ProtonSaslMechanism findMatchingMechanism(java.lang.String, java.lang.String, java.util.Set<java.lang.String>, java.lang.String[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;[Ljava/lang/String;)Lio/vertx/proton/sasl/ProtonSaslMechanism;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 2: aload 3
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 17
StackMap locals: java.lang.String java.lang.String java.util.Set java.lang.String[] io.vertx.proton.sasl.ProtonSaslMechanism java.util.List top int int java.lang.String[]
StackMap stack:
3: aload 9
iload 7
aaload
astore 6
start local 6 4: aload 6
invokestatic io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl.findMechanismFactory:(Ljava/lang/String;)Lio/vertx/proton/sasl/ProtonSaslMechanismFactory;
astore 10
start local 10 5: aload 10
ifnull 16
6: aload 10
invokeinterface io.vertx.proton.sasl.ProtonSaslMechanismFactory.createMechanism:()Lio/vertx/proton/sasl/ProtonSaslMechanism;
astore 11
start local 11 7: aload 2
ifnull 12
aload 2
invokeinterface java.util.Set.isEmpty:()Z
ifne 12
aload 2
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 12
8: getstatic io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl.LOG:Lio/vertx/core/logging/Logger;
ldc "Skipping {0} mechanism because it is not in the configured mechanisms restriction set"
iconst_1
anewarray java.lang.Object
dup
iconst_0
9: aload 6
aastore
10: invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;[Ljava/lang/Object;)V
11: goto 16
StackMap locals: java.lang.String java.lang.String java.util.Set java.lang.String[] io.vertx.proton.sasl.ProtonSaslMechanism java.util.List java.lang.String int int java.lang.String[] io.vertx.proton.sasl.ProtonSaslMechanismFactory io.vertx.proton.sasl.ProtonSaslMechanism
StackMap stack:
12: aload 11
aload 0
aload 1
invokeinterface io.vertx.proton.sasl.ProtonSaslMechanism.isApplicable:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 15
13: aload 5
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: goto 16
15: StackMap locals:
StackMap stack:
getstatic io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl.LOG:Lio/vertx/core/logging/Logger;
ldc "Skipping {0} mechanism because the available credentials are not sufficient"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 11
aastore
invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;[Ljava/lang/Object;)V
end local 11 end local 10 end local 6 16: StackMap locals: java.lang.String java.lang.String java.util.Set java.lang.String[] io.vertx.proton.sasl.ProtonSaslMechanism java.util.List top int int java.lang.String[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
17: iload 7
iload 8
if_icmplt 3
18: aload 5
invokeinterface java.util.List.isEmpty:()Z
ifne 21
19: aload 5
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
20: aload 5
aload 5
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast io.vertx.proton.sasl.ProtonSaslMechanism
astore 4
21: StackMap locals: java.lang.String java.lang.String java.util.Set java.lang.String[] io.vertx.proton.sasl.ProtonSaslMechanism java.util.List
StackMap stack:
getstatic io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl.LOG:Lio/vertx/core/logging/Logger;
ldc "Best match for SASL auth was: {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;[Ljava/lang/Object;)V
22: aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 username Ljava/lang/String;
0 23 1 password Ljava/lang/String;
0 23 2 mechRestrictions Ljava/util/Set<Ljava/lang/String;>;
0 23 3 remoteMechanisms [Ljava/lang/String;
1 23 4 match Lio/vertx/proton/sasl/ProtonSaslMechanism;
2 23 5 found Ljava/util/List<Lio/vertx/proton/sasl/ProtonSaslMechanism;>;
4 16 6 remoteMechanism Ljava/lang/String;
5 16 10 factory Lio/vertx/proton/sasl/ProtonSaslMechanismFactory;
7 16 11 mech Lio/vertx/proton/sasl/ProtonSaslMechanism;
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;[Ljava/lang/String;)Lio/vertx/proton/sasl/ProtonSaslMechanism;
MethodParameters:
Name Flags
username
password
mechRestrictions
remoteMechanisms
protected static io.vertx.proton.sasl.ProtonSaslMechanismFactory findMechanismFactory(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/vertx/proton/sasl/ProtonSaslMechanismFactory;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
invokevirtual java.lang.String.isEmpty:()Z
ifeq 3
1: StackMap locals:
StackMap stack:
getstatic io.vertx.proton.sasl.impl.ProtonSaslMechanismFinderImpl.LOG:Lio/vertx/core/logging/Logger;
ldc "No SASL mechanism name was specified"
invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 4: ldc "PLAIN"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
5: new io.vertx.proton.sasl.impl.ProtonSaslPlainFactoryImpl
dup
invokespecial io.vertx.proton.sasl.impl.ProtonSaslPlainFactoryImpl.<init>:()V
astore 1
6: goto 12
StackMap locals: io.vertx.proton.sasl.ProtonSaslMechanismFactory
StackMap stack:
7: ldc "ANONYMOUS"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
8: new io.vertx.proton.sasl.impl.ProtonSaslAnonymousFactoryImpl
dup
invokespecial io.vertx.proton.sasl.impl.ProtonSaslAnonymousFactoryImpl.<init>:()V
astore 1
9: goto 12
StackMap locals:
StackMap stack:
10: ldc "EXTERNAL"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: new io.vertx.proton.sasl.impl.ProtonSaslExternalFactoryImpl
dup
invokespecial io.vertx.proton.sasl.impl.ProtonSaslExternalFactoryImpl.<init>:()V
astore 1
12: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 name Ljava/lang/String;
4 13 1 factory Lio/vertx/proton/sasl/ProtonSaslMechanismFactory;
MethodParameters:
Name Flags
name
}
SourceFile: "ProtonSaslMechanismFinderImpl.java"