public class org.apache.catalina.authenticator.SpnegoAuthenticator extends org.apache.catalina.authenticator.AuthenticatorBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.authenticator.SpnegoAuthenticator
  super_class: org.apache.catalina.authenticator.AuthenticatorBase
{
  private final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private java.lang.String loginConfigName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean storeDelegatedCredential;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.regex.Pattern noKeepAliveUserAgents;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0002) ACC_PRIVATE

  private boolean applyJava8u40Fix;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
         0: .line 56
            aload 0 /* this */
            invokespecial org.apache.catalina.authenticator.AuthenticatorBase.<init>:()V
         1: .line 58
            aload 0 /* this */
            ldc Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
         2: .line 61
            aload 0 /* this */
            ldc "com.sun.security.jgss.krb5.accept"
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.loginConfigName:Ljava/lang/String;
         3: .line 69
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.storeDelegatedCredential:Z
         4: .line 78
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.noKeepAliveUserAgents:Ljava/util/regex/Pattern;
         5: .line 96
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.applyJava8u40Fix:Z
         6: .line 56
            return
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;

  public java.lang.String getLoginConfigName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
         0: .line 63
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.loginConfigName:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;

  public void setLoginConfigName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
        start local 1 // java.lang.String loginConfigName
         0: .line 66
            aload 0 /* this */
            aload 1 /* loginConfigName */
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.loginConfigName:Ljava/lang/String;
         1: .line 67
            return
        end local 1 // java.lang.String loginConfigName
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            0    2     1  loginConfigName  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      loginConfigName  

  public boolean isStoreDelegatedCredential();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
         0: .line 71
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.storeDelegatedCredential:Z
            ireturn
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;

  public void setStoreDelegatedCredential(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
        start local 1 // boolean storeDelegatedCredential
         0: .line 75
            aload 0 /* this */
            iload 1 /* storeDelegatedCredential */
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.storeDelegatedCredential:Z
         1: .line 76
            return
        end local 1 // boolean storeDelegatedCredential
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            0    2     1  storeDelegatedCredential  Z
    MethodParameters:
                          Name  Flags
      storeDelegatedCredential  

  public java.lang.String getNoKeepAliveUserAgents();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
         0: .line 80
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.noKeepAliveUserAgents:Ljava/util/regex/Pattern;
            astore 1 /* p */
        start local 1 // java.util.regex.Pattern p
         1: .line 81
            aload 1 /* p */
            ifnonnull 3
         2: .line 82
            aconst_null
            areturn
         3: .line 84
      StackMap locals: java.util.regex.Pattern
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.util.regex.Pattern.pattern:()Ljava/lang/String;
            areturn
        end local 1 // java.util.regex.Pattern p
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            1    4     1     p  Ljava/util/regex/Pattern;

  public void setNoKeepAliveUserAgents(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
        start local 1 // java.lang.String noKeepAliveUserAgents
         0: .line 88
            aload 1 /* noKeepAliveUserAgents */
            ifnull 2
         1: .line 89
            aload 1 /* noKeepAliveUserAgents */
            invokevirtual java.lang.String.length:()I
            ifne 4
         2: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.noKeepAliveUserAgents:Ljava/util/regex/Pattern;
         3: .line 91
            goto 5
         4: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* noKeepAliveUserAgents */
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.noKeepAliveUserAgents:Ljava/util/regex/Pattern;
         5: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String noKeepAliveUserAgents
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            0    6     1  noKeepAliveUserAgents  Ljava/lang/String;
    MethodParameters:
                       Name  Flags
      noKeepAliveUserAgents  

  public boolean getApplyJava8u40Fix();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
         0: .line 98
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.applyJava8u40Fix:Z
            ireturn
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;

  public void setApplyJava8u40Fix(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
        start local 1 // boolean applyJava8u40Fix
         0: .line 101
            aload 0 /* this */
            iload 1 /* applyJava8u40Fix */
            putfield org.apache.catalina.authenticator.SpnegoAuthenticator.applyJava8u40Fix:Z
         1: .line 102
            return
        end local 1 // boolean applyJava8u40Fix
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            0    2     1  applyJava8u40Fix  Z
    MethodParameters:
                  Name  Flags
      applyJava8u40Fix  

  protected java.lang.String getAuthMethod();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
         0: .line 107
            ldc "SPNEGO"
            areturn
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;

  protected void initInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
         0: .line 113
            aload 0 /* this */
            invokespecial org.apache.catalina.authenticator.AuthenticatorBase.initInternal:()V
         1: .line 116
            ldc "java.security.krb5.conf"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* krb5Conf */
        start local 1 // java.lang.String krb5Conf
         2: .line 117
            aload 1 /* krb5Conf */
            ifnonnull 9
         3: .line 119
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.container:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getCatalinaBase:()Ljava/io/File;
         4: .line 120
            ldc "conf/krb5.ini"
         5: .line 119
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 2 /* krb5ConfFile */
        start local 2 // java.io.File krb5ConfFile
         6: .line 121
            ldc "java.security.krb5.conf"
         7: .line 122
            aload 2 /* krb5ConfFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
         8: .line 121
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        end local 2 // java.io.File krb5ConfFile
         9: .line 126
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "java.security.auth.login.config"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* jaasConf */
        start local 2 // java.lang.String jaasConf
        10: .line 127
            aload 2 /* jaasConf */
            ifnonnull 17
        11: .line 129
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.container:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getCatalinaBase:()Ljava/io/File;
        12: .line 130
            ldc "conf/jaas.conf"
        13: .line 129
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* jaasConfFile */
        start local 3 // java.io.File jaasConfFile
        14: .line 131
            ldc "java.security.auth.login.config"
        15: .line 132
            aload 3 /* jaasConfFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
        16: .line 131
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        end local 3 // java.io.File jaasConfFile
        17: .line 134
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 2 // java.lang.String jaasConf
        end local 1 // java.lang.String krb5Conf
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            2   18     1      krb5Conf  Ljava/lang/String;
            6    9     2  krb5ConfFile  Ljava/io/File;
           10   18     2      jaasConf  Ljava/lang/String;
           14   17     3  jaasConfFile  Ljava/io/File;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected boolean doAuthenticate(org.apache.catalina.connector.Request, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=15, args_size=3
        start local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // jakarta.servlet.http.HttpServletResponse response
         0: .line 141
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            iconst_1
            invokevirtual org.apache.catalina.authenticator.SpnegoAuthenticator.checkForCachedAuthentication:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Z)Z
            ifeq 2
         1: .line 142
            iconst_1
            ireturn
         2: .line 146
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
         3: .line 147
            ldc "authorization"
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.getValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
         4: .line 145
            astore 3 /* authorization */
        start local 3 // org.apache.tomcat.util.buf.MessageBytes authorization
         5: .line 149
            aload 3 /* authorization */
            ifnonnull 11
         6: .line 150
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 8
         7: .line 151
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "authenticator.noAuthHeader"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         8: .line 153
      StackMap locals: org.apache.tomcat.util.buf.MessageBytes
      StackMap stack:
            aload 2 /* response */
            ldc "WWW-Authenticate"
            ldc "Negotiate"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 154
            aload 2 /* response */
            sipush 401
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        10: .line 155
            iconst_0
            ireturn
        11: .line 158
      StackMap locals:
      StackMap stack:
            aload 3 /* authorization */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.toBytes:()V
        12: .line 159
            aload 3 /* authorization */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
            astore 4 /* authorizationBC */
        start local 4 // org.apache.tomcat.util.buf.ByteChunk authorizationBC
        13: .line 161
            aload 4 /* authorizationBC */
            ldc "negotiate "
            iconst_0
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.startsWithIgnoreCase:(Ljava/lang/String;I)Z
            ifne 21
        14: .line 162
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 18
        15: .line 163
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
        16: .line 164
            ldc "spnegoAuthenticator.authHeaderNotNego"
        17: .line 163
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        18: .line 166
      StackMap locals: org.apache.tomcat.util.buf.ByteChunk
      StackMap stack:
            aload 2 /* response */
            ldc "WWW-Authenticate"
            ldc "Negotiate"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 167
            aload 2 /* response */
            sipush 401
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        20: .line 168
            iconst_0
            ireturn
        21: .line 171
      StackMap locals:
      StackMap stack:
            aload 4 /* authorizationBC */
            aload 4 /* authorizationBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getOffset:()I
            bipush 10
            iadd
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.setOffset:(I)V
        22: .line 173
            aload 4 /* authorizationBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBuffer:()[B
        23: .line 174
            aload 4 /* authorizationBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getOffset:()I
        24: .line 175
            aload 4 /* authorizationBC */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
        25: .line 173
            invokestatic org.apache.tomcat.util.codec.binary.Base64.decodeBase64:([BII)[B
            astore 5 /* decoded */
        start local 5 // byte[] decoded
        26: .line 177
            aload 0 /* this */
            invokevirtual org.apache.catalina.authenticator.SpnegoAuthenticator.getApplyJava8u40Fix:()Z
            ifeq 28
        27: .line 178
            aload 5 /* decoded */
            invokestatic org.apache.catalina.authenticator.SpnegoAuthenticator$SpnegoTokenFixer.fix:([B)V
        28: .line 181
      StackMap locals: byte[]
      StackMap stack:
            aload 5 /* decoded */
            arraylength
            ifne 36
        29: .line 182
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 33
        30: .line 183
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
        31: .line 184
            ldc "spnegoAuthenticator.authHeaderNoToken"
        32: .line 183
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        33: .line 186
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            ldc "WWW-Authenticate"
            ldc "Negotiate"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
        34: .line 187
            aload 2 /* response */
            sipush 401
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        35: .line 188
            iconst_0
            ireturn
        36: .line 191
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* lc */
        start local 6 // javax.security.auth.login.LoginContext lc
        37: .line 192
            aconst_null
            astore 7 /* gssContext */
        start local 7 // org.ietf.jgss.GSSContext gssContext
        38: .line 193
            aconst_null
            astore 8 /* outToken */
        start local 8 // byte[] outToken
        39: .line 194
            aconst_null
            astore 9 /* principal */
        start local 9 // java.security.Principal principal
        40: .line 197
            new javax.security.auth.login.LoginContext
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.authenticator.SpnegoAuthenticator.getLoginConfigName:()Ljava/lang/String;
            invokespecial javax.security.auth.login.LoginContext.<init>:(Ljava/lang/String;)V
            astore 6 /* lc */
        41: .line 198
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.login:()V
        42: .line 199
            goto 59
      StackMap locals: org.apache.catalina.authenticator.SpnegoAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.buf.MessageBytes org.apache.tomcat.util.buf.ByteChunk byte[] javax.security.auth.login.LoginContext org.ietf.jgss.GSSContext byte[] java.security.Principal
      StackMap stack: javax.security.auth.login.LoginException
        43: astore 10 /* e */
        start local 10 // javax.security.auth.login.LoginException e
        44: .line 200
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "spnegoAuthenticator.serviceLoginFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
        45: .line 201
            aload 10 /* e */
        46: .line 200
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        47: .line 202
            aload 2 /* response */
        48: .line 203
            sipush 500
        49: .line 202
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        50: .line 262
            aload 7 /* gssContext */
            ifnull 54
        51: .line 264
            aload 7 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.dispose:()V
        52: .line 265
            goto 54
      StackMap locals: org.apache.catalina.authenticator.SpnegoAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.buf.MessageBytes org.apache.tomcat.util.buf.ByteChunk byte[] javax.security.auth.login.LoginContext org.ietf.jgss.GSSContext byte[] java.security.Principal javax.security.auth.login.LoginException
      StackMap stack: org.ietf.jgss.GSSException
        53: pop
        54: .line 269
      StackMap locals:
      StackMap stack:
            aload 6 /* lc */
            ifnull 58
        55: .line 271
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.logout:()V
        56: .line 272
            goto 58
      StackMap locals:
      StackMap stack: javax.security.auth.login.LoginException
        57: pop
        58: .line 204
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 10 // javax.security.auth.login.LoginException e
        59: .line 207
      StackMap locals:
      StackMap stack:
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.getSubject:()Ljavax/security/auth/Subject;
            astore 10 /* subject */
        start local 10 // javax.security.auth.Subject subject
        60: .line 211
            invokestatic org.ietf.jgss.GSSManager.getInstance:()Lorg/ietf/jgss/GSSManager;
            astore 11 /* manager */
        start local 11 // org.ietf.jgss.GSSManager manager
        61: .line 214
            getstatic org.apache.tomcat.util.compat.JreVendor.IS_IBM_JVM:Z
            ifeq 64
        62: .line 215
            ldc 2147483647
            istore 12 /* credentialLifetime */
        start local 12 // int credentialLifetime
        63: .line 216
            goto 65
        end local 12 // int credentialLifetime
        64: .line 217
      StackMap locals: javax.security.auth.Subject org.ietf.jgss.GSSManager
      StackMap stack:
            iconst_0
            istore 12 /* credentialLifetime */
        start local 12 // int credentialLifetime
        65: .line 220
      StackMap locals: int
      StackMap stack:
            aload 11 /* manager */
            iload 12 /* credentialLifetime */
            invokedynamic run(Lorg/ietf/jgss/GSSManager;I)Ljava/security/PrivilegedExceptionAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/apache/catalina/authenticator/SpnegoAuthenticator.lambda$0(Lorg/ietf/jgss/GSSManager;I)Lorg/ietf/jgss/GSSCredential; (6)
                  ()Lorg/ietf/jgss/GSSCredential;
        66: .line 219
            astore 13 /* action */
        start local 13 // java.security.PrivilegedExceptionAction action
        67: .line 224
            aload 11 /* manager */
            aload 10 /* subject */
            aload 13 /* action */
            invokestatic javax.security.auth.Subject.doAs:(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast org.ietf.jgss.GSSCredential
            invokevirtual org.ietf.jgss.GSSManager.createContext:(Lorg/ietf/jgss/GSSCredential;)Lorg/ietf/jgss/GSSContext;
            astore 7 /* gssContext */
        68: .line 226
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.getSubject:()Ljavax/security/auth/Subject;
            new org.apache.catalina.authenticator.SpnegoAuthenticator$AcceptAction
            dup
            aload 7 /* gssContext */
            aload 5 /* decoded */
            invokespecial org.apache.catalina.authenticator.SpnegoAuthenticator$AcceptAction.<init>:(Lorg/ietf/jgss/GSSContext;[B)V
            invokestatic javax.security.auth.Subject.doAs:(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast byte[]
            astore 8 /* outToken */
        69: .line 228
            aload 8 /* outToken */
            ifnonnull 85
        70: .line 229
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 74
        71: .line 230
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
        72: .line 231
            ldc "spnegoAuthenticator.ticketValidateFail"
        73: .line 230
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        74: .line 234
      StackMap locals: java.security.PrivilegedExceptionAction
      StackMap stack:
            aload 2 /* response */
            ldc "WWW-Authenticate"
            ldc "Negotiate"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
        75: .line 235
            aload 2 /* response */
            sipush 401
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        76: .line 262
            aload 7 /* gssContext */
            ifnull 80
        77: .line 264
            aload 7 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.dispose:()V
        78: .line 265
            goto 80
      StackMap locals:
      StackMap stack: org.ietf.jgss.GSSException
        79: pop
        80: .line 269
      StackMap locals:
      StackMap stack:
            aload 6 /* lc */
            ifnull 84
        81: .line 271
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.logout:()V
        82: .line 272
            goto 84
      StackMap locals:
      StackMap stack: javax.security.auth.login.LoginException
        83: pop
        84: .line 236
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        85: .line 239
      StackMap locals:
      StackMap stack:
            aload 10 /* subject */
            new org.apache.catalina.authenticator.SpnegoAuthenticator$AuthenticateAction
            dup
        86: .line 240
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getRealm:()Lorg/apache/catalina/Realm;
            aload 7 /* gssContext */
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.storeDelegatedCredential:Z
            invokespecial org.apache.catalina.authenticator.SpnegoAuthenticator$AuthenticateAction.<init>:(Lorg/apache/catalina/Realm;Lorg/ietf/jgss/GSSContext;Z)V
        87: .line 239
            invokestatic javax.security.auth.Subject.doAs:(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.security.Principal
            astore 9 /* principal */
        end local 13 // java.security.PrivilegedExceptionAction action
        end local 12 // int credentialLifetime
        end local 11 // org.ietf.jgss.GSSManager manager
        end local 10 // javax.security.auth.Subject subject
        88: .line 242
            goto 131
      StackMap locals: org.apache.catalina.authenticator.SpnegoAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.buf.MessageBytes org.apache.tomcat.util.buf.ByteChunk byte[] javax.security.auth.login.LoginContext org.ietf.jgss.GSSContext byte[] java.security.Principal
      StackMap stack: org.ietf.jgss.GSSException
        89: astore 10 /* e */
        start local 10 // org.ietf.jgss.GSSException e
        90: .line 243
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 92
        91: .line 244
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "spnegoAuthenticator.ticketValidateFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 10 /* e */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        92: .line 246
      StackMap locals: org.ietf.jgss.GSSException
      StackMap stack:
            aload 2 /* response */
            ldc "WWW-Authenticate"
            ldc "Negotiate"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
        93: .line 247
            aload 2 /* response */
            sipush 401
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        94: .line 262
            aload 7 /* gssContext */
            ifnull 98
        95: .line 264
            aload 7 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.dispose:()V
        96: .line 265
            goto 98
      StackMap locals:
      StackMap stack: org.ietf.jgss.GSSException
        97: pop
        98: .line 269
      StackMap locals:
      StackMap stack:
            aload 6 /* lc */
            ifnull 102
        99: .line 271
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.logout:()V
       100: .line 272
            goto 102
      StackMap locals:
      StackMap stack: javax.security.auth.login.LoginException
       101: pop
       102: .line 248
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 10 // org.ietf.jgss.GSSException e
       103: .line 249
      StackMap locals: org.apache.catalina.authenticator.SpnegoAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.buf.MessageBytes org.apache.tomcat.util.buf.ByteChunk byte[] javax.security.auth.login.LoginContext org.ietf.jgss.GSSContext byte[] java.security.Principal
      StackMap stack: java.security.PrivilegedActionException
            astore 10 /* e */
        start local 10 // java.security.PrivilegedActionException e
       104: .line 250
            aload 10 /* e */
            invokevirtual java.security.PrivilegedActionException.getCause:()Ljava/lang/Throwable;
            astore 11 /* cause */
        start local 11 // java.lang.Throwable cause
       105: .line 251
            aload 11 /* cause */
            instanceof org.ietf.jgss.GSSException
            ifeq 109
       106: .line 252
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 110
       107: .line 253
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "spnegoAuthenticator.serviceLoginFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 10 /* e */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
       108: .line 255
            goto 110
       109: .line 256
      StackMap locals: java.security.PrivilegedActionException java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.SpnegoAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "spnegoAuthenticator.serviceLoginFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 10 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
       110: .line 258
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            ldc "WWW-Authenticate"
            ldc "Negotiate"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
       111: .line 259
            aload 2 /* response */
            sipush 401
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
       112: .line 262
            aload 7 /* gssContext */
            ifnull 116
       113: .line 264
            aload 7 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.dispose:()V
       114: .line 265
            goto 116
      StackMap locals:
      StackMap stack: org.ietf.jgss.GSSException
       115: pop
       116: .line 269
      StackMap locals:
      StackMap stack:
            aload 6 /* lc */
            ifnull 120
       117: .line 271
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.logout:()V
       118: .line 272
            goto 120
      StackMap locals:
      StackMap stack: javax.security.auth.login.LoginException
       119: pop
       120: .line 260
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 11 // java.lang.Throwable cause
        end local 10 // java.security.PrivilegedActionException e
       121: .line 261
      StackMap locals: org.apache.catalina.authenticator.SpnegoAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.buf.MessageBytes org.apache.tomcat.util.buf.ByteChunk byte[] javax.security.auth.login.LoginContext org.ietf.jgss.GSSContext byte[] java.security.Principal
      StackMap stack: java.lang.Throwable
            astore 14
       122: .line 262
            aload 7 /* gssContext */
            ifnull 126
       123: .line 264
            aload 7 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.dispose:()V
       124: .line 265
            goto 126
      StackMap locals: org.apache.catalina.authenticator.SpnegoAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.buf.MessageBytes org.apache.tomcat.util.buf.ByteChunk byte[] javax.security.auth.login.LoginContext org.ietf.jgss.GSSContext byte[] java.security.Principal top top top top java.lang.Throwable
      StackMap stack: org.ietf.jgss.GSSException
       125: pop
       126: .line 269
      StackMap locals:
      StackMap stack:
            aload 6 /* lc */
            ifnull 130
       127: .line 271
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.logout:()V
       128: .line 272
            goto 130
      StackMap locals:
      StackMap stack: javax.security.auth.login.LoginException
       129: pop
       130: .line 276
      StackMap locals:
      StackMap stack:
            aload 14
            athrow
       131: .line 262
      StackMap locals: org.apache.catalina.authenticator.SpnegoAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.buf.MessageBytes org.apache.tomcat.util.buf.ByteChunk byte[] javax.security.auth.login.LoginContext org.ietf.jgss.GSSContext byte[] java.security.Principal
      StackMap stack:
            aload 7 /* gssContext */
            ifnull 135
       132: .line 264
            aload 7 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.dispose:()V
       133: .line 265
            goto 135
      StackMap locals:
      StackMap stack: org.ietf.jgss.GSSException
       134: pop
       135: .line 269
      StackMap locals:
      StackMap stack:
            aload 6 /* lc */
            ifnull 139
       136: .line 271
            aload 6 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.logout:()V
       137: .line 272
            goto 139
      StackMap locals:
      StackMap stack: javax.security.auth.login.LoginException
       138: pop
       139: .line 279
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            ldc "WWW-Authenticate"
            new java.lang.StringBuilder
            dup
            ldc "Negotiate "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       140: .line 280
            aload 8 /* outToken */
            invokestatic org.apache.tomcat.util.codec.binary.Base64.encodeBase64String:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       141: .line 279
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
       142: .line 282
            aload 9 /* principal */
            ifnull 155
       143: .line 283
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 9 /* principal */
            ldc "SPNEGO"
       144: .line 284
            aload 9 /* principal */
            invokeinterface java.security.Principal.getName:()Ljava/lang/String;
            aconst_null
       145: .line 283
            invokevirtual org.apache.catalina.authenticator.SpnegoAuthenticator.register:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Ljava/security/Principal;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       146: .line 286
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.SpnegoAuthenticator.noKeepAliveUserAgents:Ljava/util/regex/Pattern;
            astore 10 /* p */
        start local 10 // java.util.regex.Pattern p
       147: .line 287
            aload 10 /* p */
            ifnull 154
       148: .line 289
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
       149: .line 290
            ldc "user-agent"
       150: .line 289
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.getValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
       151: .line 288
            astore 11 /* ua */
        start local 11 // org.apache.tomcat.util.buf.MessageBytes ua
       152: .line 291
            aload 11 /* ua */
            ifnull 154
            aload 10 /* p */
            aload 11 /* ua */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.toString:()Ljava/lang/String;
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 154
       153: .line 292
            aload 2 /* response */
            ldc "Connection"
            ldc "close"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
        end local 11 // org.apache.tomcat.util.buf.MessageBytes ua
       154: .line 295
      StackMap locals: java.util.regex.Pattern
      StackMap stack:
            iconst_1
            ireturn
        end local 10 // java.util.regex.Pattern p
       155: .line 298
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            sipush 401
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
       156: .line 299
            iconst_0
            ireturn
        end local 9 // java.security.Principal principal
        end local 8 // byte[] outToken
        end local 7 // org.ietf.jgss.GSSContext gssContext
        end local 6 // javax.security.auth.login.LoginContext lc
        end local 5 // byte[] decoded
        end local 4 // org.apache.tomcat.util.buf.ByteChunk authorizationBC
        end local 3 // org.apache.tomcat.util.buf.MessageBytes authorization
        end local 2 // jakarta.servlet.http.HttpServletResponse response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.SpnegoAuthenticator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  157     0                this  Lorg/apache/catalina/authenticator/SpnegoAuthenticator;
            0  157     1             request  Lorg/apache/catalina/connector/Request;
            0  157     2            response  Ljakarta/servlet/http/HttpServletResponse;
            5  157     3       authorization  Lorg/apache/tomcat/util/buf/MessageBytes;
           13  157     4     authorizationBC  Lorg/apache/tomcat/util/buf/ByteChunk;
           26  157     5             decoded  [B
           37  157     6                  lc  Ljavax/security/auth/login/LoginContext;
           38  157     7          gssContext  Lorg/ietf/jgss/GSSContext;
           39  157     8            outToken  [B
           40  157     9           principal  Ljava/security/Principal;
           44   59    10                   e  Ljavax/security/auth/login/LoginException;
           60   88    10             subject  Ljavax/security/auth/Subject;
           61   88    11             manager  Lorg/ietf/jgss/GSSManager;
           63   64    12  credentialLifetime  I
           65   88    12  credentialLifetime  I
           67   88    13              action  Ljava/security/PrivilegedExceptionAction<Lorg/ietf/jgss/GSSCredential;>;
           90  103    10                   e  Lorg/ietf/jgss/GSSException;
          104  121    10                   e  Ljava/security/PrivilegedActionException;
          105  121    11               cause  Ljava/lang/Throwable;
          147  155    10                   p  Ljava/util/regex/Pattern;
          152  154    11                  ua  Lorg/apache/tomcat/util/buf/MessageBytes;
      Exception table:
        from    to  target  type
          40    42      43  Class javax.security.auth.login.LoginException
          51    52      53  Class org.ietf.jgss.GSSException
          55    56      57  Class javax.security.auth.login.LoginException
          77    78      79  Class org.ietf.jgss.GSSException
          81    82      83  Class javax.security.auth.login.LoginException
          40    50      89  Class org.ietf.jgss.GSSException
          59    76      89  Class org.ietf.jgss.GSSException
          85    88      89  Class org.ietf.jgss.GSSException
          95    96      97  Class org.ietf.jgss.GSSException
          99   100     101  Class javax.security.auth.login.LoginException
          40    50     103  Class java.security.PrivilegedActionException
          59    76     103  Class java.security.PrivilegedActionException
          85    88     103  Class java.security.PrivilegedActionException
         113   114     115  Class org.ietf.jgss.GSSException
         117   118     119  Class javax.security.auth.login.LoginException
          40    50     121  any
          59    76     121  any
          85    94     121  any
         103   112     121  any
         123   124     125  Class org.ietf.jgss.GSSException
         127   128     129  Class javax.security.auth.login.LoginException
         132   133     134  Class org.ietf.jgss.GSSException
         136   137     138  Class javax.security.auth.login.LoginException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  private static org.ietf.jgss.GSSCredential lambda$0(org.ietf.jgss.GSSManager, int);
    descriptor: (Lorg/ietf/jgss/GSSManager;I)Lorg/ietf/jgss/GSSCredential;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
         0: .line 220
            aload 0
            aconst_null
         1: .line 221
            iload 1
         2: .line 222
            new org.ietf.jgss.Oid
            dup
            ldc "1.3.6.1.5.5.2"
            invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
         3: .line 223
            iconst_2
         4: .line 220
            invokevirtual org.ietf.jgss.GSSManager.createCredential:(Lorg/ietf/jgss/GSSName;ILorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;
         5: .line 223
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "SpnegoAuthenticator.java"
NestMembers:
  org.apache.catalina.authenticator.SpnegoAuthenticator$AcceptAction  org.apache.catalina.authenticator.SpnegoAuthenticator$AuthenticateAction  org.apache.catalina.authenticator.SpnegoAuthenticator$SpnegoTokenFixer
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public AcceptAction = org.apache.catalina.authenticator.SpnegoAuthenticator$AcceptAction of org.apache.catalina.authenticator.SpnegoAuthenticator
  public AuthenticateAction = org.apache.catalina.authenticator.SpnegoAuthenticator$AuthenticateAction of org.apache.catalina.authenticator.SpnegoAuthenticator
  public SpnegoTokenFixer = org.apache.catalina.authenticator.SpnegoAuthenticator$SpnegoTokenFixer of org.apache.catalina.authenticator.SpnegoAuthenticator