abstract class com.microsoft.sqlserver.jdbc.SSPIAuthentication
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.microsoft.sqlserver.jdbc.SSPIAuthentication
super_class: java.lang.Object
{
private static final java.util.regex.Pattern SPN_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator validator;
descriptor: Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "MSSQLSvc/(.*):([^:@]+)(@.+)?"
1: iconst_2
2: invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
putstatic com.microsoft.sqlserver.jdbc.SSPIAuthentication.SPN_PATTERN:Ljava/util/regex/Pattern;
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
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 Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
abstract byte[] generateClientContext(byte[], boolean[]);
descriptor: ([B[Z)[B
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
pin
done
abstract void releaseClientContext();
descriptor: ()V
flags: (0x0400) ACC_ABSTRACT
private java.lang.String makeSpn(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, int);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;I)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
ldc "MSSQLSvc/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 4
start local 4 1: aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.serverNameAsACE:()Z
ifeq 4
2: aload 4
aload 2
invokestatic java.net.IDN.toASCII:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: goto 5
4: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 4
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals:
StackMap stack:
aload 4
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 4
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
7: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
0 8 1 con Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 8 2 server Ljava/lang/String;
0 8 3 port I
1 8 4 spn Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
con
server
port
private com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator getRealmValidator();
descriptor: ()Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SSPIAuthentication.validator:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
ifnull 2
1: aload 0
getfield com.microsoft.sqlserver.jdbc.SSPIAuthentication.validator:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
areturn
2: StackMap locals:
StackMap stack:
aload 0
new com.microsoft.sqlserver.jdbc.SSPIAuthentication$1
dup
aload 0
invokespecial com.microsoft.sqlserver.jdbc.SSPIAuthentication$1.<init>:(Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;)V
putfield com.microsoft.sqlserver.jdbc.SSPIAuthentication.validator:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
3: aload 0
getfield com.microsoft.sqlserver.jdbc.SSPIAuthentication.validator:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
private java.lang.String findRealmFromHostname(com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator, java.lang.String);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 3: goto 10
4: StackMap locals: int
StackMap stack:
aload 2
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
start local 4 5: aload 1
aload 4
invokeinterface com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator.isRealmValid:(Ljava/lang/String;)Z
ifeq 7
6: aload 4
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
areturn
7: StackMap locals: java.lang.String
StackMap stack:
aload 2
ldc "."
iload 3
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
istore 3
8: iconst_m1
iload 3
if_icmpeq 10
9: iinc 3 1
end local 4 10: StackMap locals:
StackMap stack:
iload 3
iconst_m1
if_icmpeq 11
iload 3
aload 2
invokevirtual java.lang.String.length:()I
iconst_2
isub
if_icmplt 4
11: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
0 12 1 realmValidator Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
0 12 2 hostname Ljava/lang/String;
3 12 3 index I
5 10 4 realm Ljava/lang/String;
MethodParameters:
Name Flags
realmValidator
hostname
java.lang.String enrichSpnWithRealm(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0000)
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
getstatic com.microsoft.sqlserver.jdbc.SSPIAuthentication.SPN_PATTERN:Ljava/util/regex/Pattern;
aload 1
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
start local 3 3: aload 3
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 5
4: aload 1
areturn
5: StackMap locals: java.util.regex.Matcher
StackMap stack:
aload 3
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
ifnull 7
6: aload 1
areturn
7: StackMap locals:
StackMap stack:
aload 3
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 4
start local 4 8: aload 3
iconst_2
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 5
start local 5 9: aload 0
invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.getRealmValidator:()Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
astore 6
start local 6 10: aload 0
aload 6
aload 4
invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.findRealmFromHostname:(Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 11: aload 7
ifnonnull 17
iload 2
ifeq 17
12: aload 4
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
astore 8
start local 8 13: aload 0
aload 6
aload 8
invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.findRealmFromHostname:(Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;Ljava/lang/String;)Ljava/lang/String;
astore 7
14: aload 8
astore 4
end local 8 15: goto 17
StackMap locals: com.microsoft.sqlserver.jdbc.SSPIAuthentication java.lang.String int java.util.regex.Matcher java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator java.lang.String
StackMap stack: java.net.UnknownHostException
16: pop
17: StackMap locals:
StackMap stack:
aload 7
ifnonnull 19
18: aload 1
areturn
19: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "MSSQLSvc/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 8
start local 8 20: aload 8
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "@"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: aload 8
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
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 22 0 this Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
0 22 1 spn Ljava/lang/String;
0 22 2 allowHostnameCanonicalization Z
3 22 3 m Ljava/util/regex/Matcher;
8 22 4 dnsName Ljava/lang/String;
9 22 5 portOrInstance Ljava/lang/String;
10 22 6 realmValidator Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
11 22 7 realm Ljava/lang/String;
13 15 8 canonicalHostName Ljava/lang/String;
20 22 8 sb Ljava/lang/StringBuilder;
Exception table:
from to target type
12 15 16 Class java.net.UnknownHostException
MethodParameters:
Name Flags
spn
allowHostnameCanonicalization
java.lang.String getSpn(com.microsoft.sqlserver.jdbc.SQLServerConnection);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
ifnonnull 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
3: getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.SERVER_SPN:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
4: astore 3
start local 3 5: aload 3
ifnull 14
6: aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.serverNameAsACE:()Z
ifeq 12
7: aload 3
ldc "/"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 4
start local 4 8: new java.lang.StringBuilder
dup
aload 3
iconst_0
iload 4
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 3
iload 4
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.net.IDN.toASCII:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
end local 4 start local 2 11: goto 17
end local 2 12: StackMap locals: com.microsoft.sqlserver.jdbc.SSPIAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection top java.lang.String
StackMap stack:
aload 3
astore 2
start local 2 13: goto 17
end local 2 14: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 1
getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.currentConnectPlaceHolder:Lcom/microsoft/sqlserver/jdbc/ServerPortPlaceHolder;
invokevirtual com.microsoft.sqlserver.jdbc.ServerPortPlaceHolder.getServerName:()Ljava/lang/String;
15: aload 1
getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.currentConnectPlaceHolder:Lcom/microsoft/sqlserver/jdbc/ServerPortPlaceHolder;
invokevirtual com.microsoft.sqlserver.jdbc.ServerPortPlaceHolder.getPortNumber:()I
16: invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.makeSpn:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;I)Ljava/lang/String;
astore 2
start local 2 17: StackMap locals: com.microsoft.sqlserver.jdbc.SSPIAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String
StackMap stack:
aload 0
aload 2
aload 3
ifnonnull 18
iconst_1
goto 19
StackMap locals: com.microsoft.sqlserver.jdbc.SSPIAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String
StackMap stack: com.microsoft.sqlserver.jdbc.SSPIAuthentication java.lang.String
18: iconst_0
StackMap locals: com.microsoft.sqlserver.jdbc.SSPIAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String
StackMap stack: com.microsoft.sqlserver.jdbc.SSPIAuthentication java.lang.String int
19: invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.enrichSpnWithRealm:(Ljava/lang/String;Z)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
0 20 1 con Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
11 12 2 spn Ljava/lang/String;
13 14 2 spn Ljava/lang/String;
17 20 2 spn Ljava/lang/String;
5 20 3 userSuppliedServerSpn Ljava/lang/String;
8 11 4 slashPos I
MethodParameters:
Name Flags
con
}
SourceFile: "SSPIAuthentication.java"
NestMembers:
com.microsoft.sqlserver.jdbc.SSPIAuthentication$1 com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator
InnerClasses:
com.microsoft.sqlserver.jdbc.SSPIAuthentication$1
abstract RealmValidator = com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator of com.microsoft.sqlserver.jdbc.SSPIAuthentication