public final class com.sun.security.sasl.ClientFactoryImpl implements javax.security.sasl.SaslClientFactory
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.security.sasl.ClientFactoryImpl
super_class: java.lang.Object
{
private static final java.lang.String[] myMechs;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] mechPolicies;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int EXTERNAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int CRAMMD5;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int PLAIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_3
anewarray java.lang.String
dup
iconst_0
1: ldc "EXTERNAL"
aastore
dup
iconst_1
2: ldc "CRAM-MD5"
aastore
dup
iconst_2
3: ldc "PLAIN"
aastore
4: putstatic com.sun.security.sasl.ClientFactoryImpl.myMechs:[Ljava/lang/String;
5: iconst_3
newarray 10
dup
iconst_0
6: bipush 7
iastore
dup
iconst_1
7: bipush 17
iastore
dup
iconst_2
8: bipush 16
iastore
9: putstatic com.sun.security.sasl.ClientFactoryImpl.mechPolicies:[I
10: 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
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/security/sasl/ClientFactoryImpl;
public javax.security.sasl.SaslClient createSaslClient(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler);
descriptor: ([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslClient;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iconst_0
istore 7
start local 7 1: goto 18
2: StackMap locals: int
StackMap stack:
aload 1
iload 7
aaload
getstatic com.sun.security.sasl.ClientFactoryImpl.myMechs:[Ljava/lang/String;
iconst_0
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
3: getstatic com.sun.security.sasl.ClientFactoryImpl.mechPolicies:[I
iconst_0
iaload
aload 5
invokestatic com.sun.security.sasl.util.PolicyUtils.checkPolicy:(ILjava/util/Map;)Z
ifeq 5
4: new com.sun.security.sasl.ExternalClient
dup
aload 2
invokespecial com.sun.security.sasl.ExternalClient.<init>:(Ljava/lang/String;)V
areturn
5: StackMap locals:
StackMap stack:
aload 1
iload 7
aaload
getstatic com.sun.security.sasl.ClientFactoryImpl.myMechs:[Ljava/lang/String;
iconst_1
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
6: getstatic com.sun.security.sasl.ClientFactoryImpl.mechPolicies:[I
iconst_1
iaload
aload 5
invokestatic com.sun.security.sasl.util.PolicyUtils.checkPolicy:(ILjava/util/Map;)Z
ifeq 11
7: aload 0
ldc "CRAM-MD5"
aload 2
aload 6
invokevirtual com.sun.security.sasl.ClientFactoryImpl.getUserInfo:(Ljava/lang/String;Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;)[Ljava/lang/Object;
astore 8
start local 8 8: new com.sun.security.sasl.CramMD5Client
dup
aload 8
iconst_0
aaload
checkcast java.lang.String
9: aload 8
iconst_1
aaload
checkcast byte[]
10: invokespecial com.sun.security.sasl.CramMD5Client.<init>:(Ljava/lang/String;[B)V
areturn
end local 8 11: StackMap locals:
StackMap stack:
aload 1
iload 7
aaload
getstatic com.sun.security.sasl.ClientFactoryImpl.myMechs:[Ljava/lang/String;
iconst_2
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
12: getstatic com.sun.security.sasl.ClientFactoryImpl.mechPolicies:[I
iconst_2
iaload
aload 5
invokestatic com.sun.security.sasl.util.PolicyUtils.checkPolicy:(ILjava/util/Map;)Z
ifeq 17
13: aload 0
ldc "PLAIN"
aload 2
aload 6
invokevirtual com.sun.security.sasl.ClientFactoryImpl.getUserInfo:(Ljava/lang/String;Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;)[Ljava/lang/Object;
astore 8
start local 8 14: new com.sun.security.sasl.PlainClient
dup
aload 2
15: aload 8
iconst_0
aaload
checkcast java.lang.String
aload 8
iconst_1
aaload
checkcast byte[]
16: invokespecial com.sun.security.sasl.PlainClient.<init>:(Ljava/lang/String;Ljava/lang/String;[B)V
areturn
end local 8 17: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
18: iload 7
aload 1
arraylength
if_icmplt 2
end local 7 19: aconst_null
areturn
end local 6 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 20 0 this Lcom/sun/security/sasl/ClientFactoryImpl;
0 20 1 mechs [Ljava/lang/String;
0 20 2 authorizationId Ljava/lang/String;
0 20 3 protocol Ljava/lang/String;
0 20 4 serverName Ljava/lang/String;
0 20 5 props Ljava/util/Map<Ljava/lang/String;*>;
0 20 6 cbh Ljavax/security/auth/callback/CallbackHandler;
1 19 7 i I
8 11 8 uinfo [Ljava/lang/Object;
14 17 8 uinfo [Ljava/lang/Object;
Exceptions:
throws javax.security.sasl.SaslException
Signature: ([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslClient;
MethodParameters:
Name Flags
mechs
authorizationId
protocol
serverName
props
cbh
public java.lang.String[] getMechanismNames(java.util.Map<java.lang.String, ?>);
descriptor: (Ljava/util/Map;)[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.sun.security.sasl.ClientFactoryImpl.myMechs:[Ljava/lang/String;
getstatic com.sun.security.sasl.ClientFactoryImpl.mechPolicies:[I
aload 1
invokestatic com.sun.security.sasl.util.PolicyUtils.filterMechs:([Ljava/lang/String;[ILjava/util/Map;)[Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/security/sasl/ClientFactoryImpl;
0 1 1 props Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljava/util/Map<Ljava/lang/String;*>;)[Ljava/lang/String;
MethodParameters:
Name Flags
props
private java.lang.Object[] getUserInfo(java.lang.String, java.lang.String, javax.security.auth.callback.CallbackHandler);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 4
1: new javax.security.sasl.SaslException
dup
2: ldc "Callback handler to get username/password required"
3: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " authentication id: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 5: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " password: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 6: aload 2
ifnonnull 8
7: new javax.security.auth.callback.NameCallback
dup
aload 4
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;)V
goto 9
8: StackMap locals: java.lang.String java.lang.String
StackMap stack:
new javax.security.auth.callback.NameCallback
dup
aload 4
aload 2
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;Ljava/lang/String;)V
9: StackMap locals:
StackMap stack: javax.security.auth.callback.NameCallback
astore 6
start local 6 10: new javax.security.auth.callback.PasswordCallback
dup
aload 5
iconst_0
invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
astore 7
start local 7 11: aload 3
iconst_2
anewarray javax.security.auth.callback.Callback
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 7
aastore
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
12: aload 7
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
astore 8
start local 8 13: aload 8
ifnull 17
14: new java.lang.String
dup
aload 8
invokespecial java.lang.String.<init>:([C)V
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 9
start local 9 15: aload 7
invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
16: goto 18
end local 9 17: StackMap locals: javax.security.auth.callback.NameCallback javax.security.auth.callback.PasswordCallback char[]
StackMap stack:
aconst_null
astore 9
start local 9 18: StackMap locals: byte[]
StackMap stack:
aload 6
invokevirtual javax.security.auth.callback.NameCallback.getName:()Ljava/lang/String;
astore 10
start local 10 19: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 10
aastore
dup
iconst_1
aload 9
aastore
20: areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 21: StackMap locals: com.sun.security.sasl.ClientFactoryImpl java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler
StackMap stack: java.io.IOException
astore 4
start local 4 22: new javax.security.sasl.SaslException
dup
ldc "Cannot get password"
aload 4
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 23: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 4
start local 4 24: new javax.security.sasl.SaslException
dup
ldc "Cannot get userid/password"
aload 4
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/security/sasl/ClientFactoryImpl;
0 25 1 prefix Ljava/lang/String;
0 25 2 authorizationId Ljava/lang/String;
0 25 3 cbh Ljavax/security/auth/callback/CallbackHandler;
5 21 4 userPrompt Ljava/lang/String;
6 21 5 passwdPrompt Ljava/lang/String;
10 21 6 ncb Ljavax/security/auth/callback/NameCallback;
11 21 7 pcb Ljavax/security/auth/callback/PasswordCallback;
13 21 8 pw [C
15 17 9 bytepw [B
18 21 9 bytepw [B
19 21 10 authId Ljava/lang/String;
22 23 4 e Ljava/io/IOException;
24 25 4 e Ljavax/security/auth/callback/UnsupportedCallbackException;
Exception table:
from to target type
4 20 21 Class java.io.IOException
4 20 23 Class javax.security.auth.callback.UnsupportedCallbackException
Exceptions:
throws javax.security.sasl.SaslException
MethodParameters:
Name Flags
prefix
authorizationId
cbh
}
SourceFile: "ClientFactoryImpl.java"