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: .line 32
            ldc "MSSQLSvc/(.*):([^:@]+)(@.+)?"
         1: .line 33
            iconst_2
         2: .line 32
            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: .line 33
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
         0: .line 24
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
      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 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
        start local 2 // java.lang.String server
        start local 3 // int port
         0: .line 47
            new java.lang.StringBuilder
            dup
            ldc "MSSQLSvc/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* spn */
        start local 4 // java.lang.StringBuilder spn
         1: .line 49
            aload 1 /* con */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.serverNameAsACE:()Z
            ifeq 4
         2: .line 50
            aload 4 /* spn */
            aload 2 /* server */
            invokestatic java.net.IDN.toASCII:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 51
            goto 5
         4: .line 52
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 4 /* spn */
            aload 2 /* server */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 54
      StackMap locals:
      StackMap stack:
            aload 4 /* spn */
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 55
            aload 4 /* spn */
            iload 3 /* port */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         7: .line 56
            aload 4 /* spn */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuilder spn
        end local 3 // int port
        end local 2 // java.lang.String server
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
        end local 0 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
      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 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
         0: .line 74
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SSPIAuthentication.validator:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
            ifnull 2
         1: .line 75
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SSPIAuthentication.validator:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
            areturn
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SSPIAuthentication$1
            dup
            aload 0 /* this */
            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: .line 88
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SSPIAuthentication.validator:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
      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 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
        start local 1 // com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator realmValidator
        start local 2 // java.lang.String hostname
         0: .line 101
            aload 2 /* hostname */
            ifnonnull 2
         1: .line 102
            aconst_null
            areturn
         2: .line 104
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         3: .line 105
            goto 10
         4: .line 106
      StackMap locals: int
      StackMap stack:
            aload 2 /* hostname */
            iload 3 /* index */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* realm */
        start local 4 // java.lang.String realm
         5: .line 107
            aload 1 /* realmValidator */
            aload 4 /* realm */
            invokeinterface com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator.isRealmValid:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 108
            aload 4 /* realm */
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            areturn
         7: .line 110
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* hostname */
            ldc "."
            iload 3 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            istore 3 /* index */
         8: .line 111
            iconst_m1
            iload 3 /* index */
            if_icmpeq 10
         9: .line 112
            iinc 3 /* index */ 1
        end local 4 // java.lang.String realm
        10: .line 105
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iconst_m1
            if_icmpeq 11
            iload 3 /* index */
            aload 2 /* hostname */
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            if_icmplt 4
        11: .line 115
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // int index
        end local 2 // java.lang.String hostname
        end local 1 // com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator realmValidator
        end local 0 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
      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 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
        start local 1 // java.lang.String spn
        start local 2 // boolean allowHostnameCanonicalization
         0: .line 128
            aload 1 /* spn */
            ifnonnull 2
         1: .line 129
            aload 1 /* spn */
            areturn
         2: .line 131
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SSPIAuthentication.SPN_PATTERN:Ljava/util/regex/Pattern;
            aload 1 /* spn */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* m */
        start local 3 // java.util.regex.Matcher m
         3: .line 132
            aload 3 /* m */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifne 5
         4: .line 133
            aload 1 /* spn */
            areturn
         5: .line 135
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            aload 3 /* m */
            iconst_3
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            ifnull 7
         6: .line 137
            aload 1 /* spn */
            areturn
         7: .line 139
      StackMap locals:
      StackMap stack:
            aload 3 /* m */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 4 /* dnsName */
        start local 4 // java.lang.String dnsName
         8: .line 140
            aload 3 /* m */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 5 /* portOrInstance */
        start local 5 // java.lang.String portOrInstance
         9: .line 141
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.getRealmValidator:()Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;
            astore 6 /* realmValidator */
        start local 6 // com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator realmValidator
        10: .line 142
            aload 0 /* this */
            aload 6 /* realmValidator */
            aload 4 /* dnsName */
            invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.findRealmFromHostname:(Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* realm */
        start local 7 // java.lang.String realm
        11: .line 143
            aload 7 /* realm */
            ifnonnull 17
            iload 2 /* allowHostnameCanonicalization */
            ifeq 17
        12: .line 146
            aload 4 /* dnsName */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
            astore 8 /* canonicalHostName */
        start local 8 // java.lang.String canonicalHostName
        13: .line 147
            aload 0 /* this */
            aload 6 /* realmValidator */
            aload 8 /* canonicalHostName */
            invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.findRealmFromHostname:(Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication$RealmValidator;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* realm */
        14: .line 149
            aload 8 /* canonicalHostName */
            astore 4 /* dnsName */
        end local 8 // java.lang.String canonicalHostName
        15: .line 150
            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: .line 154
      StackMap locals:
      StackMap stack:
            aload 7 /* realm */
            ifnonnull 19
        18: .line 155
            aload 1 /* spn */
            areturn
        19: .line 157
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "MSSQLSvc/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 8 /* sb */
        start local 8 // java.lang.StringBuilder sb
        20: .line 158
            aload 8 /* sb */
            aload 4 /* dnsName */
            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 /* portOrInstance */
            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 /* realm */
            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: .line 159
            aload 8 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 8 // java.lang.StringBuilder sb
        end local 7 // java.lang.String realm
        end local 6 // com.microsoft.sqlserver.jdbc.SSPIAuthentication$RealmValidator realmValidator
        end local 5 // java.lang.String portOrInstance
        end local 4 // java.lang.String dnsName
        end local 3 // java.util.regex.Matcher m
        end local 2 // boolean allowHostnameCanonicalization
        end local 1 // java.lang.String spn
        end local 0 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
      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 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
         0: .line 171
            aload 1 /* con */
            ifnull 1
            aload 1 /* con */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
            ifnonnull 2
         1: .line 172
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 176
      StackMap locals:
      StackMap stack:
            aload 1 /* con */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
         3: .line 177
            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: .line 176
            astore 3 /* userSuppliedServerSpn */
        start local 3 // java.lang.String userSuppliedServerSpn
         5: .line 178
            aload 3 /* userSuppliedServerSpn */
            ifnull 14
         6: .line 180
            aload 1 /* con */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.serverNameAsACE:()Z
            ifeq 12
         7: .line 181
            aload 3 /* userSuppliedServerSpn */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 4 /* slashPos */
        start local 4 // int slashPos
         8: .line 182
            new java.lang.StringBuilder
            dup
            aload 3 /* userSuppliedServerSpn */
            iconst_0
            iload 4 /* slashPos */
            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: .line 183
            aload 3 /* userSuppliedServerSpn */
            iload 4 /* slashPos */
            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: .line 182
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* spn */
        end local 4 // int slashPos
        start local 2 // java.lang.String spn
        11: .line 184
            goto 17
        end local 2 // java.lang.String spn
        12: .line 185
      StackMap locals: com.microsoft.sqlserver.jdbc.SSPIAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection top java.lang.String
      StackMap stack:
            aload 3 /* userSuppliedServerSpn */
            astore 2 /* spn */
        start local 2 // java.lang.String spn
        13: .line 187
            goto 17
        end local 2 // java.lang.String spn
        14: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* con */
            aload 1 /* con */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.currentConnectPlaceHolder:Lcom/microsoft/sqlserver/jdbc/ServerPortPlaceHolder;
            invokevirtual com.microsoft.sqlserver.jdbc.ServerPortPlaceHolder.getServerName:()Ljava/lang/String;
        15: .line 189
            aload 1 /* con */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.currentConnectPlaceHolder:Lcom/microsoft/sqlserver/jdbc/ServerPortPlaceHolder;
            invokevirtual com.microsoft.sqlserver.jdbc.ServerPortPlaceHolder.getPortNumber:()I
        16: .line 188
            invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.makeSpn:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;I)Ljava/lang/String;
            astore 2 /* spn */
        start local 2 // java.lang.String spn
        17: .line 191
      StackMap locals: com.microsoft.sqlserver.jdbc.SSPIAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* spn */
            aload 3 /* userSuppliedServerSpn */
            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 // java.lang.String userSuppliedServerSpn
        end local 2 // java.lang.String spn
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
        end local 0 // com.microsoft.sqlserver.jdbc.SSPIAuthentication this
      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