final class com.microsoft.sqlserver.jdbc.KerbAuthentication extends com.microsoft.sqlserver.jdbc.SSPIAuthentication
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.KerbAuthentication
super_class: com.microsoft.sqlserver.jdbc.SSPIAuthentication
{
private static final java.util.logging.Logger authLogger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.microsoft.sqlserver.jdbc.SQLServerConnection con;
descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String spn;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.ietf.jgss.GSSManager manager;
descriptor: Lorg/ietf/jgss/GSSManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.security.auth.login.LoginContext lc;
descriptor: Ljavax/security/auth/login/LoginContext;
flags: (0x0002) ACC_PRIVATE
private boolean isUserCreatedCredential;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.ietf.jgss.GSSCredential peerCredentials;
descriptor: Lorg/ietf/jgss/GSSCredential;
flags: (0x0002) ACC_PRIVATE
private org.ietf.jgss.GSSContext peerContext;
descriptor: Lorg/ietf/jgss/GSSContext;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "com.microsoft.sqlserver.jdbc.internals.KerbAuthentication"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
1: putstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
2: new com.microsoft.sqlserver.jdbc.JaasConfiguration
dup
invokestatic javax.security.auth.login.Configuration.getConfiguration:()Ljavax/security/auth/login/Configuration;
invokespecial com.microsoft.sqlserver.jdbc.JaasConfiguration.<init>:(Ljavax/security/auth/login/Configuration;)V
invokestatic javax.security.auth.login.Configuration.setConfiguration:(Ljavax/security/auth/login/Configuration;)V
3: return
LocalVariableTable:
Start End Slot Name Signature
private void intAuthInit();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=1
start local 0 0: new org.ietf.jgss.Oid
dup
ldc "1.2.840.113554.1.2.2"
invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.manager:Lorg/ietf/jgss/GSSManager;
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.spn:Ljava/lang/String;
aconst_null
invokevirtual org.ietf.jgss.GSSManager.createName:(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;
astore 2
start local 2 2: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
ifnull 10
3: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.manager:Lorg/ietf/jgss/GSSManager;
aload 2
aload 1
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
4: iconst_0
5: invokevirtual org.ietf.jgss.GSSManager.createContext:(Lorg/ietf/jgss/GSSName;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/GSSCredential;I)Lorg/ietf/jgss/GSSContext;
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
6: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
iconst_0
invokeinterface org.ietf.jgss.GSSContext.requestCredDeleg:(Z)V
7: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestMutualAuth:(Z)V
8: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestInteg:(Z)V
9: goto 68
10: StackMap locals: org.ietf.jgss.Oid org.ietf.jgss.GSSName
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
11: getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.JAAS_CONFIG_NAME:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
12: getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.JAAS_CONFIG_NAME:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.getDefaultValue:()Ljava/lang/String;
13: invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 14: new com.microsoft.sqlserver.jdbc.KerbCallback
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
invokespecial com.microsoft.sqlserver.jdbc.KerbCallback.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
astore 5
start local 5 15: invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
astore 6
start local 6 16: aload 6
invokestatic javax.security.auth.Subject.getSubject:(Ljava/security/AccessControlContext;)Ljavax/security/auth/Subject;
astore 4
start local 4 17: aload 4
ifnonnull 43
18: aload 0
new javax.security.auth.login.LoginContext
dup
aload 3
aload 5
invokespecial javax.security.auth.login.LoginContext.<init>:(Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;)V
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.lc:Ljavax/security/auth/login/LoginContext;
19: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.lc:Ljavax/security/auth/login/LoginContext;
invokevirtual javax.security.auth.login.LoginContext.login:()V
20: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.lc:Ljavax/security/auth/login/LoginContext;
invokevirtual javax.security.auth.login.LoginContext.getSubject:()Ljavax/security/auth/Subject;
astore 4
end local 6 21: goto 43
end local 4 StackMap locals: com.microsoft.sqlserver.jdbc.KerbAuthentication org.ietf.jgss.Oid org.ietf.jgss.GSSName java.lang.String top com.microsoft.sqlserver.jdbc.KerbCallback
StackMap stack: javax.security.auth.login.LoginException
22: astore 6
start local 6 23: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 27
24: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Failed to login using Kerberos due to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual javax.security.auth.login.LoginException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
27: StackMap locals: javax.security.auth.login.LoginException
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
iconst_0
28: ldc "R_integratedAuthenticationFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aload 6
29: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
30: goto 42
StackMap locals:
StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerException
31: astore 7
start local 7 32: ldc "R_kerberosLoginFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
iconst_3
anewarray java.lang.Object
dup
iconst_0
33: aload 7
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerException.getMessage:()Ljava/lang/String;
aastore
dup
iconst_1
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 6
invokevirtual javax.security.auth.login.LoginException.getMessage:()Ljava/lang/String;
aastore
34: invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 8
start local 8 35: aload 5
invokevirtual com.microsoft.sqlserver.jdbc.KerbCallback.getUsernameRequested:()Ljava/lang/String;
ifnull 39
36: ldc "R_kerberosLoginFailedForUsername"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
iconst_2
anewarray java.lang.Object
dup
iconst_0
37: aload 5
invokevirtual com.microsoft.sqlserver.jdbc.KerbCallback.getUsernameRequested:()Ljava/lang/String;
aastore
dup
iconst_1
aload 8
aastore
38: invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 8
39: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerException java.lang.String
StackMap stack:
new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 8
aload 7
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerException.getSQLState:()Ljava/lang/String;
40: sipush 18456
aload 6
41: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V
athrow
end local 8 end local 7 42: StackMap locals:
StackMap stack:
return
end local 6 start local 4 43: StackMap locals: com.microsoft.sqlserver.jdbc.KerbAuthentication org.ietf.jgss.Oid org.ietf.jgss.GSSName java.lang.String javax.security.auth.Subject com.microsoft.sqlserver.jdbc.KerbCallback
StackMap stack:
getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 45
44: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " Getting client credentials"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.manager:Lorg/ietf/jgss/GSSManager;
aload 1
invokestatic com.microsoft.sqlserver.jdbc.KerbAuthentication.getClientCredential:(Ljavax/security/auth/Subject;Lorg/ietf/jgss/GSSManager;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSCredential;
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
46: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 48
47: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " creating security context"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
48: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.manager:Lorg/ietf/jgss/GSSManager;
aload 2
aload 1
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
49: iconst_0
50: invokevirtual org.ietf.jgss.GSSManager.createContext:(Lorg/ietf/jgss/GSSName;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/GSSCredential;I)Lorg/ietf/jgss/GSSContext;
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
51: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestCredDeleg:(Z)V
52: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestMutualAuth:(Z)V
53: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestInteg:(Z)V
end local 5 end local 4 end local 3 end local 2 end local 1 54: goto 68
StackMap locals: com.microsoft.sqlserver.jdbc.KerbAuthentication
StackMap stack: org.ietf.jgss.GSSException
55: astore 1
start local 1 56: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 58
57: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "initAuthInit failed GSSException:-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
58: StackMap locals: org.ietf.jgss.GSSException
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
iconst_0
59: ldc "R_integratedAuthenticationFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aload 1
60: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
end local 1 61: goto 68
62: StackMap locals: com.microsoft.sqlserver.jdbc.KerbAuthentication
StackMap stack: java.security.PrivilegedActionException
astore 1
start local 1 63: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 65
64: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "initAuthInit failed privileged exception:-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
65: StackMap locals: java.security.PrivilegedActionException
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
iconst_0
66: ldc "R_integratedAuthenticationFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aload 1
67: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
end local 1 68: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Lcom/microsoft/sqlserver/jdbc/KerbAuthentication;
1 54 1 kerberos Lorg/ietf/jgss/Oid;
2 54 2 remotePeerName Lorg/ietf/jgss/GSSName;
14 54 3 configName Ljava/lang/String;
17 22 4 currentSubject Ljavax/security/auth/Subject;
43 54 4 currentSubject Ljavax/security/auth/Subject;
15 54 5 callback Lcom/microsoft/sqlserver/jdbc/KerbCallback;
16 21 6 context Ljava/security/AccessControlContext;
23 43 6 le Ljavax/security/auth/login/LoginException;
32 42 7 alwaysTriggered Lcom/microsoft/sqlserver/jdbc/SQLServerException;
35 42 8 message Ljava/lang/String;
56 61 1 ge Lorg/ietf/jgss/GSSException;
63 68 1 ge Ljava/security/PrivilegedActionException;
Exception table:
from to target type
15 21 22 Class javax.security.auth.login.LoginException
27 30 31 Class com.microsoft.sqlserver.jdbc.SQLServerException
0 42 55 Class org.ietf.jgss.GSSException
43 54 55 Class org.ietf.jgss.GSSException
0 42 62 Class java.security.PrivilegedActionException
43 54 62 Class java.security.PrivilegedActionException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
private static org.ietf.jgss.GSSCredential getClientCredential(javax.security.auth.Subject, org.ietf.jgss.GSSManager, org.ietf.jgss.Oid);
descriptor: (Ljavax/security/auth/Subject;Lorg/ietf/jgss/GSSManager;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSCredential;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new com.microsoft.sqlserver.jdbc.KerbAuthentication$1
dup
aload 1
aload 2
invokespecial com.microsoft.sqlserver.jdbc.KerbAuthentication$1.<init>:(Lorg/ietf/jgss/GSSManager;Lorg/ietf/jgss/Oid;)V
astore 3
start local 3 1: aload 0
aload 3
invokestatic javax.security.auth.Subject.doAs:(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
astore 4
start local 4 2: aload 4
checkcast org.ietf.jgss.GSSCredential
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 subject Ljavax/security/auth/Subject;
0 3 1 gssManager Lorg/ietf/jgss/GSSManager;
0 3 2 kerboid Lorg/ietf/jgss/Oid;
1 3 3 action Ljava/security/PrivilegedExceptionAction<Lorg/ietf/jgss/GSSCredential;>;
2 3 4 credential Ljava/lang/Object;
Exceptions:
throws java.security.PrivilegedActionException
MethodParameters:
Name Flags
subject final
gssManager final
kerboid final
private byte[] intAuthHandShake(byte[], boolean[]);
descriptor: ([B[Z)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 2
1: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " Sending token to server over secure context"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
aload 1
iconst_0
aload 1
arraylength
invokeinterface org.ietf.jgss.GSSContext.initSecContext:([BII)[B
astore 3
start local 3 3: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
invokeinterface org.ietf.jgss.GSSContext.isEstablished:()Z
ifeq 8
4: aload 2
iconst_0
iconst_1
bastore
5: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 14
6: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Authentication done."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
7: goto 14
StackMap locals: byte[]
StackMap stack:
8: aload 3
ifnonnull 14
9: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 11
10: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "byteToken is null in initSecContext."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.info:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
iconst_0
12: ldc "R_integratedAuthenticationFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
13: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;)V
14: StackMap locals:
StackMap stack:
aload 3
15: areturn
end local 3 16: StackMap locals: com.microsoft.sqlserver.jdbc.KerbAuthentication byte[] boolean[]
StackMap stack: org.ietf.jgss.GSSException
astore 3
start local 3 17: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 19
18: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "initSecContext Failed :-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
19: StackMap locals: org.ietf.jgss.GSSException
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
iconst_0
20: ldc "R_integratedAuthenticationFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aload 3
21: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
end local 3 22: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/microsoft/sqlserver/jdbc/KerbAuthentication;
0 23 1 pin [B
0 23 2 done [Z
3 16 3 byteToken [B
17 22 3 ge Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
0 15 16 Class org.ietf.jgss.GSSException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
pin
done
void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, int);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;I)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SSPIAuthentication.<init>:()V
1: aload 0
invokestatic org.ietf.jgss.GSSManager.getInstance:()Lorg/ietf/jgss/GSSManager;
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.manager:Lorg/ietf/jgss/GSSManager;
2: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.lc:Ljavax/security/auth/login/LoginContext;
3: aload 0
iconst_0
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.isUserCreatedCredential:Z
4: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
5: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
6: aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
7: aload 0
aload 1
ifnull 8
aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.KerbAuthentication.getSpn:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)Ljava/lang/String;
goto 9
StackMap locals: com.microsoft.sqlserver.jdbc.KerbAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String int
StackMap stack: com.microsoft.sqlserver.jdbc.KerbAuthentication
8: aconst_null
StackMap locals: com.microsoft.sqlserver.jdbc.KerbAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String int
StackMap stack: com.microsoft.sqlserver.jdbc.KerbAuthentication java.lang.String
9: putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.spn:Ljava/lang/String;
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/microsoft/sqlserver/jdbc/KerbAuthentication;
0 11 1 con Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 11 2 address Ljava/lang/String;
0 11 3 port I
MethodParameters:
Name Flags
con
address
port
void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, int, org.ietf.jgss.GSSCredential, boolean);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;ILorg/ietf/jgss/GSSCredential;Z)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
iload 3
invokespecial com.microsoft.sqlserver.jdbc.KerbAuthentication.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;I)V
1: aload 0
aload 4
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
2: aload 0
iload 5
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.isUserCreatedCredential:Z
3: return
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 4 0 this Lcom/microsoft/sqlserver/jdbc/KerbAuthentication;
0 4 1 con Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 4 2 address Ljava/lang/String;
0 4 3 port I
0 4 4 impersonatedUserCred Lorg/ietf/jgss/GSSCredential;
0 4 5 isUserCreated Z
MethodParameters:
Name Flags
con
address
port
impersonatedUserCred
isUserCreated
byte[] generateClientContext(byte[], boolean[]);
descriptor: ([B[Z)[B
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
ifnonnull 2
1: aload 0
invokevirtual com.microsoft.sqlserver.jdbc.KerbAuthentication.intAuthInit:()V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.KerbAuthentication.intAuthHandShake:([B[Z)[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/microsoft/sqlserver/jdbc/KerbAuthentication;
0 3 1 pin [B
0 3 2 done [Z
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
pin
done
void releaseClientContext();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
ifnull 3
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.isUserCreatedCredential:Z
ifne 3
1: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
invokeinterface org.ietf.jgss.GSSCredential.dispose:()V
2: goto 5
StackMap locals:
StackMap stack:
3: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
ifnull 5
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.isUserCreatedCredential:Z
ifeq 5
4: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerCredentials:Lorg/ietf/jgss/GSSCredential;
5: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
ifnull 7
6: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.peerContext:Lorg/ietf/jgss/GSSContext;
invokeinterface org.ietf.jgss.GSSContext.dispose:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.lc:Ljavax/security/auth/login/LoginContext;
ifnull 17
8: aload 0
getfield com.microsoft.sqlserver.jdbc.KerbAuthentication.lc:Ljavax/security/auth/login/LoginContext;
invokevirtual javax.security.auth.login.LoginContext.logout:()V
9: goto 17
StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
10: astore 1
start local 1 11: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 17
12: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " Release of the credentials failed LoginException: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
end local 1 13: goto 17
14: StackMap locals:
StackMap stack: org.ietf.jgss.GSSException
astore 1
start local 1 15: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 17
16: getstatic com.microsoft.sqlserver.jdbc.KerbAuthentication.authLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " Release of the credentials failed GSSException: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
end local 1 17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/microsoft/sqlserver/jdbc/KerbAuthentication;
11 13 1 e Ljavax/security/auth/login/LoginException;
15 17 1 e Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
0 9 10 Class javax.security.auth.login.LoginException
0 9 14 Class org.ietf.jgss.GSSException
}
SourceFile: "KerbAuthentication.java"
NestMembers:
com.microsoft.sqlserver.jdbc.KerbAuthentication$1
InnerClasses:
com.microsoft.sqlserver.jdbc.KerbAuthentication$1