public class org.apache.http.impl.auth.NegotiateScheme extends org.apache.http.impl.auth.GGSSchemeBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.http.impl.auth.NegotiateScheme
  super_class: org.apache.http.impl.auth.GGSSchemeBase
{
  private final org.apache.commons.logging.Log log;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.lang.String SPNEGO_OID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "1.3.6.1.5.5.2"

  private static final java.lang.String KERBEROS_OID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "1.2.840.113554.1.2.2"

  private final org.apache.http.impl.auth.SpnegoTokenGenerator spengoGenerator;
    descriptor: Lorg/apache/http/impl/auth/SpnegoTokenGenerator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.http.impl.auth.SpnegoTokenGenerator, boolean);
    descriptor: (Lorg/apache/http/impl/auth/SpnegoTokenGenerator;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
        start local 1 // org.apache.http.impl.auth.SpnegoTokenGenerator spengoGenerator
        start local 2 // boolean stripPort
         0: .line 65
            aload 0 /* this */
            iload 2 /* stripPort */
            invokespecial org.apache.http.impl.auth.GGSSchemeBase.<init>:(Z)V
         1: .line 53
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.apache.http.impl.auth.NegotiateScheme.log:Lorg/apache/commons/logging/Log;
         2: .line 66
            aload 0 /* this */
            aload 1 /* spengoGenerator */
            putfield org.apache.http.impl.auth.NegotiateScheme.spengoGenerator:Lorg/apache/http/impl/auth/SpnegoTokenGenerator;
         3: .line 67
            return
        end local 2 // boolean stripPort
        end local 1 // org.apache.http.impl.auth.SpnegoTokenGenerator spengoGenerator
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/apache/http/impl/auth/NegotiateScheme;
            0    4     1  spengoGenerator  Lorg/apache/http/impl/auth/SpnegoTokenGenerator;
            0    4     2        stripPort  Z
    MethodParameters:
                 Name  Flags
      spengoGenerator  final
      stripPort        final

  public void <init>(org.apache.http.impl.auth.SpnegoTokenGenerator);
    descriptor: (Lorg/apache/http/impl/auth/SpnegoTokenGenerator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
        start local 1 // org.apache.http.impl.auth.SpnegoTokenGenerator spengoGenerator
         0: .line 70
            aload 0 /* this */
            aload 1 /* spengoGenerator */
            iconst_0
            invokespecial org.apache.http.impl.auth.NegotiateScheme.<init>:(Lorg/apache/http/impl/auth/SpnegoTokenGenerator;Z)V
         1: .line 71
            return
        end local 1 // org.apache.http.impl.auth.SpnegoTokenGenerator spengoGenerator
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/http/impl/auth/NegotiateScheme;
            0    2     1  spengoGenerator  Lorg/apache/http/impl/auth/SpnegoTokenGenerator;
    MethodParameters:
                 Name  Flags
      spengoGenerator  final

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
         0: .line 74
            aload 0 /* this */
            aconst_null
            iconst_0
            invokespecial org.apache.http.impl.auth.NegotiateScheme.<init>:(Lorg/apache/http/impl/auth/SpnegoTokenGenerator;Z)V
         1: .line 75
            return
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/http/impl/auth/NegotiateScheme;

  public java.lang.String getSchemeName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
         0: .line 84
            ldc "Negotiate"
            areturn
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/http/impl/auth/NegotiateScheme;

  public org.apache.http.Header authenticate(org.apache.http.auth.Credentials, org.apache.http.HttpRequest);
    descriptor: (Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;)Lorg/apache/http/Header;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
        start local 1 // org.apache.http.auth.Credentials credentials
        start local 2 // org.apache.http.HttpRequest request
         0: .line 91
            aload 0 /* this */
            aload 1 /* credentials */
            aload 2 /* request */
            aconst_null
            invokevirtual org.apache.http.impl.auth.NegotiateScheme.authenticate:(Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/Header;
            areturn
        end local 2 // org.apache.http.HttpRequest request
        end local 1 // org.apache.http.auth.Credentials credentials
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/apache/http/impl/auth/NegotiateScheme;
            0    1     1  credentials  Lorg/apache/http/auth/Credentials;
            0    1     2      request  Lorg/apache/http/HttpRequest;
    Exceptions:
      throws org.apache.http.auth.AuthenticationException
    MethodParameters:
             Name  Flags
      credentials  final
      request      final

  public org.apache.http.Header authenticate(org.apache.http.auth.Credentials, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext);
    descriptor: (Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/Header;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
        start local 1 // org.apache.http.auth.Credentials credentials
        start local 2 // org.apache.http.HttpRequest request
        start local 3 // org.apache.http.protocol.HttpContext context
         0: .line 112
            aload 0 /* this */
            aload 1 /* credentials */
            aload 2 /* request */
            aload 3 /* context */
            invokespecial org.apache.http.impl.auth.GGSSchemeBase.authenticate:(Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/Header;
            areturn
        end local 3 // org.apache.http.protocol.HttpContext context
        end local 2 // org.apache.http.HttpRequest request
        end local 1 // org.apache.http.auth.Credentials credentials
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/apache/http/impl/auth/NegotiateScheme;
            0    1     1  credentials  Lorg/apache/http/auth/Credentials;
            0    1     2      request  Lorg/apache/http/HttpRequest;
            0    1     3      context  Lorg/apache/http/protocol/HttpContext;
    Exceptions:
      throws org.apache.http.auth.AuthenticationException
    MethodParameters:
             Name  Flags
      credentials  final
      request      final
      context      final

  protected byte[] generateToken(byte[], java.lang.String);
    descriptor: ([BLjava/lang/String;)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
        start local 1 // byte[] input
        start local 2 // java.lang.String authServer
         0: .line 117
            aload 0 /* this */
            aload 1 /* input */
            aload 2 /* authServer */
            invokespecial org.apache.http.impl.auth.GGSSchemeBase.generateToken:([BLjava/lang/String;)[B
            areturn
        end local 2 // java.lang.String authServer
        end local 1 // byte[] input
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/http/impl/auth/NegotiateScheme;
            0    1     1       input  [B
            0    1     2  authServer  Ljava/lang/String;
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
            Name  Flags
      input       final
      authServer  final

  protected byte[] generateToken(byte[], java.lang.String, org.apache.http.auth.Credentials);
    descriptor: ([BLjava/lang/String;Lorg/apache/http/auth/Credentials;)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
        start local 1 // byte[] input
        start local 2 // java.lang.String authServer
        start local 3 // org.apache.http.auth.Credentials credentials
         0: .line 137
            new org.ietf.jgss.Oid
            dup
            ldc "1.3.6.1.5.5.2"
            invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
            astore 4 /* negotiationOid */
        start local 4 // org.ietf.jgss.Oid negotiationOid
         1: .line 139
            aload 1 /* input */
            astore 5 /* token */
        start local 5 // byte[] token
         2: .line 140
            iconst_0
            istore 6 /* tryKerberos */
        start local 6 // boolean tryKerberos
         3: .line 142
            aload 0 /* this */
            aload 5 /* token */
            aload 4 /* negotiationOid */
            aload 2 /* authServer */
            aload 3 /* credentials */
            invokevirtual org.apache.http.impl.auth.NegotiateScheme.generateGSSToken:([BLorg/ietf/jgss/Oid;Ljava/lang/String;Lorg/apache/http/auth/Credentials;)[B
            astore 5 /* token */
         4: .line 143
            goto 11
      StackMap locals: org.apache.http.impl.auth.NegotiateScheme byte[] java.lang.String org.apache.http.auth.Credentials org.ietf.jgss.Oid byte[] int
      StackMap stack: org.ietf.jgss.GSSException
         5: astore 7 /* ex */
        start local 7 // org.ietf.jgss.GSSException ex
         6: .line 146
            aload 7 /* ex */
            invokevirtual org.ietf.jgss.GSSException.getMajor:()I
            iconst_2
            if_icmpne 10
         7: .line 147
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NegotiateScheme.log:Lorg/apache/commons/logging/Log;
            ldc "GSSException BAD_MECH, retry with Kerberos MECH"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         8: .line 148
            iconst_1
            istore 6 /* tryKerberos */
         9: .line 149
            goto 11
        10: .line 150
      StackMap locals: org.ietf.jgss.GSSException
      StackMap stack:
            aload 7 /* ex */
            athrow
        end local 7 // org.ietf.jgss.GSSException ex
        11: .line 154
      StackMap locals:
      StackMap stack:
            iload 6 /* tryKerberos */
            ifeq 20
        12: .line 156
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NegotiateScheme.log:Lorg/apache/commons/logging/Log;
            ldc "Using Kerberos MECH 1.2.840.113554.1.2.2"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        13: .line 157
            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 4 /* negotiationOid */
        14: .line 158
            aload 0 /* this */
            aload 5 /* token */
            aload 4 /* negotiationOid */
            aload 2 /* authServer */
            aload 3 /* credentials */
            invokevirtual org.apache.http.impl.auth.NegotiateScheme.generateGSSToken:([BLorg/ietf/jgss/Oid;Ljava/lang/String;Lorg/apache/http/auth/Credentials;)[B
            astore 5 /* token */
        15: .line 164
            aload 5 /* token */
            ifnull 20
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NegotiateScheme.spengoGenerator:Lorg/apache/http/impl/auth/SpnegoTokenGenerator;
            ifnull 20
        16: .line 166
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NegotiateScheme.spengoGenerator:Lorg/apache/http/impl/auth/SpnegoTokenGenerator;
            aload 5 /* token */
            invokeinterface org.apache.http.impl.auth.SpnegoTokenGenerator.generateSpnegoDERObject:([B)[B
            astore 5 /* token */
        17: .line 167
            goto 20
      StackMap locals:
      StackMap stack: java.io.IOException
        18: astore 7 /* ex */
        start local 7 // java.io.IOException ex
        19: .line 168
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NegotiateScheme.log:Lorg/apache/commons/logging/Log;
            aload 7 /* ex */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aload 7 /* ex */
            invokeinterface org.apache.commons.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.io.IOException ex
        20: .line 172
      StackMap locals:
      StackMap stack:
            aload 5 /* token */
            areturn
        end local 6 // boolean tryKerberos
        end local 5 // byte[] token
        end local 4 // org.ietf.jgss.Oid negotiationOid
        end local 3 // org.apache.http.auth.Credentials credentials
        end local 2 // java.lang.String authServer
        end local 1 // byte[] input
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lorg/apache/http/impl/auth/NegotiateScheme;
            0   21     1           input  [B
            0   21     2      authServer  Ljava/lang/String;
            0   21     3     credentials  Lorg/apache/http/auth/Credentials;
            1   21     4  negotiationOid  Lorg/ietf/jgss/Oid;
            2   21     5           token  [B
            3   21     6     tryKerberos  Z
            6   11     7              ex  Lorg/ietf/jgss/GSSException;
           19   20     7              ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class org.ietf.jgss.GSSException
          16    17      18  Class java.io.IOException
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
             Name  Flags
      input        final
      authServer   final
      credentials  final

  public java.lang.String getParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
        start local 1 // java.lang.String name
         0: .line 187
            aload 1 /* name */
            ldc "Parameter name"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 188
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/http/impl/auth/NegotiateScheme;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public java.lang.String getRealm();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
         0: .line 199
            aconst_null
            areturn
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/http/impl/auth/NegotiateScheme;

  public boolean isConnectionBased();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NegotiateScheme this
         0: .line 210
            iconst_1
            ireturn
        end local 0 // org.apache.http.impl.auth.NegotiateScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/http/impl/auth/NegotiateScheme;
}
SourceFile: "NegotiateScheme.java"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()