public final class com.sun.jndi.ldap.sasl.LdapSasl
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.jndi.ldap.sasl.LdapSasl
super_class: java.lang.Object
{
private static final java.lang.String SASL_CALLBACK;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java.naming.security.sasl.callback"
private static final java.lang.String SASL_AUTHZ_ID;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java.naming.security.sasl.authorizationId"
private static final java.lang.String SASL_REALM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java.naming.security.sasl.realm"
private static final int LDAP_SUCCESS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int LDAP_SASL_BIND_IN_PROGRESS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 14
private static final byte[] NO_BYTES;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
newarray 8
putstatic com.sun.jndi.ldap.sasl.LdapSasl.NO_BYTES:[B
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
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/jndi/ldap/sasl/LdapSasl;
public static com.sun.jndi.ldap.LdapResult saslBind(com.sun.jndi.ldap.LdapClient, com.sun.jndi.ldap.Connection, java.lang.String, java.lang.String, , java.lang.String, java.util.Hashtable<?, ?>, javax.naming.ldap.Control[]);
descriptor: (Lcom/sun/jndi/ldap/LdapClient;Lcom/sun/jndi/ldap/Connection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=21, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aconst_null
astore 8
start local 8 1: iconst_0
istore 9
start local 9 2: aload 6
ifnull 3
aload 6
ldc "java.naming.security.sasl.callback"
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.security.auth.callback.CallbackHandler
goto 4
StackMap locals: javax.security.sasl.SaslClient int
StackMap stack:
3: aconst_null
4: StackMap locals:
StackMap stack: javax.security.auth.callback.CallbackHandler
astore 10
start local 10 5: aload 10
ifnonnull 8
6: new com.sun.jndi.ldap.sasl.DefaultCallbackHandler
dup
aload 3
aload 4
aload 6
ldc "java.naming.security.sasl.realm"
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokespecial com.sun.jndi.ldap.sasl.DefaultCallbackHandler.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)V
astore 10
7: iconst_1
istore 9
8: StackMap locals: javax.security.auth.callback.CallbackHandler
StackMap stack:
aload 6
ifnull 9
aload 6
ldc "java.naming.security.sasl.authorizationId"
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
goto 10
StackMap locals:
StackMap stack:
9: aconst_null
StackMap locals:
StackMap stack: java.lang.String
10: astore 11
start local 11 11: aload 5
invokestatic com.sun.jndi.ldap.sasl.LdapSasl.getSaslMechanismNames:(Ljava/lang/String;)[Ljava/lang/String;
astore 12
start local 12 12: aload 12
aload 11
ldc "ldap"
aload 2
aload 6
aload 10
13: invokestatic javax.security.sasl.Sasl.createSaslClient:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslClient;
astore 8
14: aload 8
ifnonnull 16
15: new javax.naming.AuthenticationNotSupportedException
dup
aload 5
invokespecial javax.naming.AuthenticationNotSupportedException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: java.lang.String java.lang.String[]
StackMap stack:
aload 8
invokeinterface javax.security.sasl.SaslClient.getMechanismName:()Ljava/lang/String;
astore 14
start local 14 17: aload 8
invokeinterface javax.security.sasl.SaslClient.hasInitialResponse:()Z
ifeq 19
18: aload 8
getstatic com.sun.jndi.ldap.sasl.LdapSasl.NO_BYTES:[B
invokeinterface javax.security.sasl.SaslClient.evaluateChallenge:([B)[B
goto 20
StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.Connection java.lang.String java.lang.String java.lang.Object java.lang.String java.util.Hashtable javax.naming.ldap.Control[] javax.security.sasl.SaslClient int javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String[] top java.lang.String
StackMap stack:
19: aconst_null
20: StackMap locals:
StackMap stack: byte[]
astore 15
start local 15 21: aload 0
aconst_null
aload 15
aload 7
aload 14
iconst_1
invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
astore 13
start local 13 22: goto 33
23: StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.Connection java.lang.String java.lang.String java.lang.Object java.lang.String java.util.Hashtable javax.naming.ldap.Control[] javax.security.sasl.SaslClient int javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String[] com.sun.jndi.ldap.LdapResult java.lang.String byte[]
StackMap stack:
aload 8
24: aload 13
getfield com.sun.jndi.ldap.LdapResult.serverCreds:[B
ifnull 25
aload 13
getfield com.sun.jndi.ldap.LdapResult.serverCreds:[B
goto 26
StackMap locals:
StackMap stack: javax.security.sasl.SaslClient
25: getstatic com.sun.jndi.ldap.sasl.LdapSasl.NO_BYTES:[B
26: StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.Connection java.lang.String java.lang.String java.lang.Object java.lang.String java.util.Hashtable javax.naming.ldap.Control[] javax.security.sasl.SaslClient int javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String[] com.sun.jndi.ldap.LdapResult java.lang.String byte[]
StackMap stack: javax.security.sasl.SaslClient byte[]
invokeinterface javax.security.sasl.SaslClient.evaluateChallenge:([B)[B
astore 15
27: aload 13
getfield com.sun.jndi.ldap.LdapResult.status:I
ifne 32
28: aload 15
ifnull 36
29: new javax.naming.AuthenticationException
dup
30: ldc "SASL client generated response after success"
31: invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 0
aconst_null
aload 15
aload 7
aload 14
iconst_1
invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
astore 13
33: StackMap locals:
StackMap stack:
aload 8
invokeinterface javax.security.sasl.SaslClient.isComplete:()Z
ifne 36
34: aload 13
getfield com.sun.jndi.ldap.LdapResult.status:I
bipush 14
if_icmpeq 23
35: aload 13
getfield com.sun.jndi.ldap.LdapResult.status:I
ifeq 23
36: StackMap locals:
StackMap stack:
aload 13
getfield com.sun.jndi.ldap.LdapResult.status:I
ifne 53
37: aload 8
invokeinterface javax.security.sasl.SaslClient.isComplete:()Z
ifne 41
38: new javax.naming.AuthenticationException
dup
39: ldc "SASL authentication not complete despite server claims"
40: invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
aload 8
ldc "javax.security.sasl.qop"
invokeinterface javax.security.sasl.SaslClient.getNegotiatedProperty:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
astore 16
start local 16 42: aload 16
ifnull 52
aload 16
ldc "auth-int"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 44
43: aload 16
ldc "auth-conf"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 52
44: StackMap locals: java.lang.String
StackMap stack:
new com.sun.jndi.ldap.sasl.SaslInputStream
dup
aload 8
45: aload 1
getfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
46: invokespecial com.sun.jndi.ldap.sasl.SaslInputStream.<init>:(Ljavax/security/sasl/SaslClient;Ljava/io/InputStream;)V
astore 17
start local 17 47: new com.sun.jndi.ldap.sasl.SaslOutputStream
dup
aload 8
48: aload 1
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
49: invokespecial com.sun.jndi.ldap.sasl.SaslOutputStream.<init>:(Ljavax/security/sasl/SaslClient;Ljava/io/OutputStream;)V
astore 18
start local 18 50: aload 1
aload 17
aload 18
invokevirtual com.sun.jndi.ldap.Connection.replaceStreams:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
end local 18 end local 17 51: goto 53
52: StackMap locals:
StackMap stack:
aload 8
invokeinterface javax.security.sasl.SaslClient.dispose:()V
end local 16 53: StackMap locals:
StackMap stack:
aload 13
astore 20
54: iload 9
ifeq 56
55: aload 10
checkcast com.sun.jndi.ldap.sasl.DefaultCallbackHandler
invokevirtual com.sun.jndi.ldap.sasl.DefaultCallbackHandler.clearPassword:()V
56: StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.Connection java.lang.String java.lang.String java.lang.Object java.lang.String java.util.Hashtable javax.naming.ldap.Control[] javax.security.sasl.SaslClient int javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String[] com.sun.jndi.ldap.LdapResult java.lang.String byte[] top top top top com.sun.jndi.ldap.LdapResult
StackMap stack:
aload 20
areturn
end local 15 end local 14 end local 13 57: StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.Connection java.lang.String java.lang.String java.lang.Object java.lang.String java.util.Hashtable javax.naming.ldap.Control[] javax.security.sasl.SaslClient int javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String[]
StackMap stack: javax.security.sasl.SaslException
astore 13
start local 13 58: new javax.naming.AuthenticationException
dup
59: aload 5
60: invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
astore 14
start local 14 61: aload 14
aload 13
invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
62: aload 14
athrow
end local 14 end local 13 63: StackMap locals:
StackMap stack: java.lang.Throwable
astore 19
64: iload 9
ifeq 66
65: aload 10
checkcast com.sun.jndi.ldap.sasl.DefaultCallbackHandler
invokevirtual com.sun.jndi.ldap.sasl.DefaultCallbackHandler.clearPassword:()V
66: StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.Connection java.lang.String java.lang.String java.lang.Object java.lang.String java.util.Hashtable javax.naming.ldap.Control[] javax.security.sasl.SaslClient int javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String[] top top top top top top java.lang.Throwable
StackMap stack:
aload 19
athrow
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 67 0 clnt Lcom/sun/jndi/ldap/LdapClient;
0 67 1 conn Lcom/sun/jndi/ldap/Connection;
0 67 2 server Ljava/lang/String;
0 67 3 dn Ljava/lang/String;
0 67 4 pw Ljava/lang/Object;
0 67 5 authMech Ljava/lang/String;
0 67 6 env Ljava/util/Hashtable<**>;
0 67 7 bindCtls [Ljavax/naming/ldap/Control;
1 67 8 saslClnt Ljavax/security/sasl/SaslClient;
2 67 9 cleanupHandler Z
5 67 10 cbh Ljavax/security/auth/callback/CallbackHandler;
11 67 11 authzId Ljava/lang/String;
12 67 12 mechs [Ljava/lang/String;
22 57 13 res Lcom/sun/jndi/ldap/LdapResult;
17 57 14 mechName Ljava/lang/String;
21 57 15 response [B
42 53 16 qop Ljava/lang/String;
47 51 17 newIn Ljava/io/InputStream;
50 51 18 newOut Ljava/io/OutputStream;
58 63 13 e Ljavax/security/sasl/SaslException;
61 63 14 ne Ljavax/naming/NamingException;
Exception table:
from to target type
12 54 57 Class javax.security.sasl.SaslException
12 54 63 any
57 63 63 any
Exceptions:
throws java.io.IOException, javax.naming.NamingException
Signature: (Lcom/sun/jndi/ldap/LdapClient;Lcom/sun/jndi/ldap/Connection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Hashtable<**>;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
MethodParameters:
Name Flags
clnt
conn
server
dn
pw
authMech
env
bindCtls
private static java.lang.String[] getSaslMechanismNames(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: new java.util.StringTokenizer
dup
aload 0
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: new java.util.Vector
dup
bipush 10
invokespecial java.util.Vector.<init>:(I)V
astore 2
start local 2 2: goto 4
3: StackMap locals: java.util.StringTokenizer java.util.Vector
StackMap stack:
aload 2
aload 1
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 3
5: aload 2
invokevirtual java.util.Vector.size:()I
anewarray java.lang.String
astore 3
start local 3 6: iconst_0
istore 4
start local 4 7: goto 10
8: StackMap locals: java.lang.String[] int
StackMap stack:
aload 3
iload 4
aload 2
iload 4
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast java.lang.String
aastore
9: iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
aload 2
invokevirtual java.util.Vector.size:()I
if_icmplt 8
end local 4 11: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 str Ljava/lang/String;
1 12 1 parser Ljava/util/StringTokenizer;
2 12 2 mechs Ljava/util/Vector<Ljava/lang/String;>;
6 12 3 mechNames [Ljava/lang/String;
7 11 4 i I
MethodParameters:
Name Flags
str
}
SourceFile: "LdapSasl.java"