public class org.apache.catalina.authenticator.FormAuthenticator 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.FormAuthenticator
  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

  protected java.lang.String characterEncoding;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String landingPage;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
         0: .line 52
            aload 0 /* this */
            invokespecial org.apache.catalina.authenticator.AuthenticatorBase.<init>:()V
         1: .line 55
            aload 0 /* this */
            ldc Lorg/apache/catalina/authenticator/FormAuthenticator;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
         2: .line 65
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.authenticator.FormAuthenticator.characterEncoding:Ljava/lang/String;
         3: .line 72
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.authenticator.FormAuthenticator.landingPage:Ljava/lang/String;
         4: .line 52
            return
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/authenticator/FormAuthenticator;

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

  public void setCharacterEncoding(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.FormAuthenticator this
        start local 1 // java.lang.String encoding
         0: .line 93
            aload 0 /* this */
            aload 1 /* encoding */
            putfield org.apache.catalina.authenticator.FormAuthenticator.characterEncoding:Ljava/lang/String;
         1: .line 94
            return
        end local 1 // java.lang.String encoding
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0    2     1  encoding  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      encoding  

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

  public void setLandingPage(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.FormAuthenticator this
        start local 1 // java.lang.String landingPage
         0: .line 114
            aload 0 /* this */
            aload 1 /* landingPage */
            putfield org.apache.catalina.authenticator.FormAuthenticator.landingPage:Ljava/lang/String;
         1: .line 115
            return
        end local 1 // java.lang.String landingPage
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0    2     1  landingPage  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      landingPage  

  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=14, args_size=3
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // jakarta.servlet.http.HttpServletResponse response
         0: .line 137
            aconst_null
            astore 3 /* session */
        start local 3 // org.apache.catalina.Session session
         1: .line 138
            aconst_null
            astore 4 /* principal */
        start local 4 // java.security.Principal principal
         2: .line 141
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.cache:Z
            ifne 18
         3: .line 142
            aload 1 /* request */
            iconst_1
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 3 /* session */
         4: .line 143
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 6
         5: .line 144
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Checking for reauthenticate in session "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* session */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         6: .line 146
      StackMap locals: org.apache.catalina.Session java.security.Principal
      StackMap stack:
            aload 3 /* session */
            ldc "org.apache.catalina.session.USERNAME"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* username */
        start local 5 // java.lang.String username
         7: .line 147
            aload 3 /* session */
            ldc "org.apache.catalina.session.PASSWORD"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* password */
        start local 6 // java.lang.String password
         8: .line 148
            aload 5 /* username */
            ifnull 18
            aload 6 /* password */
            ifnull 18
         9: .line 149
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 11
        10: .line 150
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Reauthenticating username '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* username */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        11: .line 152
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getRealm:()Lorg/apache/catalina/Realm;
            aload 5 /* username */
            aload 6 /* password */
            invokeinterface org.apache.catalina.Realm.authenticate:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
            astore 4 /* principal */
        12: .line 153
            aload 4 /* principal */
            ifnull 16
        13: .line 154
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 4 /* principal */
            ldc "FORM"
            aload 5 /* username */
            aload 6 /* password */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.register:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Ljava/security/Principal;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        14: .line 155
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.matchRequest:(Lorg/apache/catalina/connector/Request;)Z
            ifne 16
        15: .line 156
            iconst_1
            ireturn
        16: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 18
        17: .line 160
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            ldc "Reauthentication failed, proceed normally"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        end local 6 // java.lang.String password
        end local 5 // java.lang.String username
        18: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.matchRequest:(Lorg/apache/catalina/connector/Request;)Z
            ifeq 30
        19: .line 168
            aload 1 /* request */
            iconst_1
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 3 /* session */
        20: .line 169
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 22
        21: .line 170
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Restore request from session '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* session */
            invokeinterface org.apache.catalina.Session.getIdInternal:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        22: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 3 /* session */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.restoreRequest:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/Session;)Z
            ifeq 26
        23: .line 173
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 25
        24: .line 174
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            ldc "Proceed to restored request"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        25: .line 176
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        26: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 28
        27: .line 179
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            ldc "Restore of original request failed"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        28: .line 181
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        29: .line 182
            iconst_0
            ireturn
        30: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            iconst_1
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.checkForCachedAuthentication:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Z)Z
            ifeq 32
        31: .line 189
            iconst_1
            ireturn
        32: .line 193
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getContextPath:()Ljava/lang/String;
            astore 5 /* contextPath */
        start local 5 // java.lang.String contextPath
        33: .line 194
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getDecodedRequestURI:()Ljava/lang/String;
            astore 6 /* requestURI */
        start local 6 // java.lang.String requestURI
        34: .line 197
            aload 6 /* requestURI */
            aload 5 /* contextPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 35
            aload 6 /* requestURI */
            ldc "/j_security_check"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 35
            iconst_1
            goto 36
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
        35: iconst_0
      StackMap locals:
      StackMap stack: int
        36: istore 7 /* loginAction */
        start local 7 // boolean loginAction
        37: .line 199
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLoginConfig:()Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
            astore 8 /* config */
        start local 8 // org.apache.tomcat.util.descriptor.web.LoginConfig config
        38: .line 202
            iload 7 /* loginAction */
            ifne 58
        39: .line 206
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getServletPath:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 47
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getPathInfo:()Ljava/lang/String;
            ifnonnull 47
        40: .line 207
            new java.lang.StringBuilder
            dup
            aload 6 /* requestURI */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 9 /* location */
        start local 9 // java.lang.StringBuilder location
        41: .line 208
            aload 9 /* location */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        42: .line 209
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
            ifnull 45
        43: .line 210
            aload 9 /* location */
            bipush 63
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        44: .line 211
            aload 9 /* location */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        45: .line 213
      StackMap locals: int org.apache.tomcat.util.descriptor.web.LoginConfig java.lang.StringBuilder
      StackMap stack:
            aload 2 /* response */
            aload 2 /* response */
            aload 9 /* location */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletResponse.encodeRedirectURL:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendRedirect:(Ljava/lang/String;)V
        46: .line 214
            iconst_0
            ireturn
        end local 9 // java.lang.StringBuilder location
        47: .line 217
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            iconst_1
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 3 /* session */
        48: .line 218
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 50
        49: .line 219
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Save request in session '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* session */
            invokeinterface org.apache.catalina.Session.getIdInternal:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        50: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 3 /* session */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.saveRequest:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/Session;)V
        51: .line 223
            goto 56
      StackMap locals:
      StackMap stack: java.io.IOException
        52: pop
        53: .line 224
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            ldc "Request body too big to save during authentication"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        54: .line 225
            aload 2 /* response */
            sipush 403
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "authenticator.requestBodyTooBig"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
        55: .line 226
            iconst_0
            ireturn
        56: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 8 /* config */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Lorg/apache/tomcat/util/descriptor/web/LoginConfig;)V
        57: .line 229
            iconst_0
            ireturn
        58: .line 234
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getResponse:()Lorg/apache/catalina/connector/Response;
            getstatic org.apache.coyote.ContinueResponseTiming.ALWAYS:Lorg/apache/coyote/ContinueResponseTiming;
            invokevirtual org.apache.catalina.connector.Response.sendAcknowledgement:(Lorg/apache/coyote/ContinueResponseTiming;)V
        59: .line 235
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getRealm:()Lorg/apache/catalina/Realm;
            astore 9 /* realm */
        start local 9 // org.apache.catalina.Realm realm
        60: .line 236
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.characterEncoding:Ljava/lang/String;
            ifnull 62
        61: .line 237
            aload 1 /* request */
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.characterEncoding:Ljava/lang/String;
            invokevirtual org.apache.catalina.connector.Request.setCharacterEncoding:(Ljava/lang/String;)V
        62: .line 239
      StackMap locals: org.apache.catalina.Realm
      StackMap stack:
            aload 1 /* request */
            ldc "j_username"
            invokevirtual org.apache.catalina.connector.Request.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* username */
        start local 10 // java.lang.String username
        63: .line 240
            aload 1 /* request */
            ldc "j_password"
            invokevirtual org.apache.catalina.connector.Request.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* password */
        start local 11 // java.lang.String password
        64: .line 241
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 66
        65: .line 242
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Authenticating username '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* username */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        66: .line 244
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 9 /* realm */
            aload 10 /* username */
            aload 11 /* password */
            invokeinterface org.apache.catalina.Realm.authenticate:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
            astore 4 /* principal */
        67: .line 245
            aload 4 /* principal */
            ifnonnull 70
        68: .line 246
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 8 /* config */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.forwardToErrorPage:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Lorg/apache/tomcat/util/descriptor/web/LoginConfig;)V
        69: .line 247
            iconst_0
            ireturn
        70: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 72
        71: .line 251
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Authentication of '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* username */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' was successful"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        72: .line 254
      StackMap locals:
      StackMap stack:
            aload 3 /* session */
            ifnonnull 74
        73: .line 255
            aload 1 /* request */
            iconst_0
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 3 /* session */
        74: .line 257
      StackMap locals:
      StackMap stack:
            aload 3 /* session */
            ifnull 79
            aload 0 /* this */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.getChangeSessionIdOnAuthentication:()Z
            ifeq 79
        75: .line 259
            aload 3 /* session */
            ldc "org.apache.catalina.authenticator.SESSION_ID"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* expectedSessionId */
        start local 12 // java.lang.String expectedSessionId
        76: .line 260
            aload 12 /* expectedSessionId */
            ifnull 77
            aload 12 /* expectedSessionId */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequestedSessionId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 79
        77: .line 261
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* session */
            invokeinterface org.apache.catalina.Session.expire:()V
        78: .line 262
            aconst_null
            astore 3 /* session */
        end local 12 // java.lang.String expectedSessionId
        79: .line 265
      StackMap locals:
      StackMap stack:
            aload 3 /* session */
            ifnonnull 95
        80: .line 266
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.containerLog:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 82
        81: .line 267
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.containerLog:Lorg/apache/juli/logging/Log;
            ldc "User took so long to log on the session expired"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        82: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.landingPage:Ljava/lang/String;
            ifnonnull 87
        83: .line 270
            aload 2 /* response */
        84: .line 271
            sipush 408
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "authenticator.sessionExpired"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
        85: .line 270
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
        86: .line 272
            goto 94
        87: .line 275
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getContextPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.landingPage:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 12 /* uri */
        start local 12 // java.lang.String uri
        88: .line 276
            new org.apache.catalina.authenticator.SavedRequest
            dup
            invokespecial org.apache.catalina.authenticator.SavedRequest.<init>:()V
            astore 13 /* saved */
        start local 13 // org.apache.catalina.authenticator.SavedRequest saved
        89: .line 277
            aload 13 /* saved */
            ldc "GET"
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setMethod:(Ljava/lang/String;)V
        90: .line 278
            aload 13 /* saved */
            aload 12 /* uri */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setRequestURI:(Ljava/lang/String;)V
        91: .line 279
            aload 13 /* saved */
            aload 12 /* uri */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setDecodedRequestURI:(Ljava/lang/String;)V
        92: .line 280
            aload 1 /* request */
            iconst_1
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            ldc "org.apache.catalina.authenticator.REQUEST"
            aload 13 /* saved */
            invokeinterface org.apache.catalina.Session.setNote:(Ljava/lang/String;Ljava/lang/Object;)V
        93: .line 281
            aload 2 /* response */
            aload 2 /* response */
            aload 12 /* uri */
            invokeinterface jakarta.servlet.http.HttpServletResponse.encodeRedirectURL:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendRedirect:(Ljava/lang/String;)V
        end local 13 // org.apache.catalina.authenticator.SavedRequest saved
        end local 12 // java.lang.String uri
        94: .line 283
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        95: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 4 /* principal */
            ldc "FORM"
            aload 10 /* username */
            aload 11 /* password */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.register:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Ljava/security/Principal;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        96: .line 290
            aload 0 /* this */
            aload 3 /* session */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.savedRequestURL:(Lorg/apache/catalina/Session;)Ljava/lang/String;
            astore 6 /* requestURI */
        97: .line 291
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 99
        98: .line 292
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Redirecting to original '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* requestURI */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        99: .line 294
      StackMap locals:
      StackMap stack:
            aload 6 /* requestURI */
            ifnonnull 111
       100: .line 295
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.landingPage:Ljava/lang/String;
            ifnonnull 103
       101: .line 296
            aload 2 /* response */
            sipush 400
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "authenticator.formlogin"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
       102: .line 297
            goto 117
       103: .line 300
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getContextPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.landingPage:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 12 /* uri */
        start local 12 // java.lang.String uri
       104: .line 301
            new org.apache.catalina.authenticator.SavedRequest
            dup
            invokespecial org.apache.catalina.authenticator.SavedRequest.<init>:()V
            astore 13 /* saved */
        start local 13 // org.apache.catalina.authenticator.SavedRequest saved
       105: .line 302
            aload 13 /* saved */
            ldc "GET"
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setMethod:(Ljava/lang/String;)V
       106: .line 303
            aload 13 /* saved */
            aload 12 /* uri */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setRequestURI:(Ljava/lang/String;)V
       107: .line 304
            aload 13 /* saved */
            aload 12 /* uri */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setDecodedRequestURI:(Ljava/lang/String;)V
       108: .line 305
            aload 3 /* session */
            ldc "org.apache.catalina.authenticator.REQUEST"
            aload 13 /* saved */
            invokeinterface org.apache.catalina.Session.setNote:(Ljava/lang/String;Ljava/lang/Object;)V
       109: .line 306
            aload 2 /* response */
            aload 2 /* response */
            aload 12 /* uri */
            invokeinterface jakarta.servlet.http.HttpServletResponse.encodeRedirectURL:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendRedirect:(Ljava/lang/String;)V
        end local 13 // org.apache.catalina.authenticator.SavedRequest saved
        end local 12 // java.lang.String uri
       110: .line 308
            goto 117
       111: .line 311
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getResponse:()Lorg/apache/catalina/connector/Response;
            astore 12 /* internalResponse */
        start local 12 // org.apache.catalina.connector.Response internalResponse
       112: .line 312
            aload 2 /* response */
            aload 6 /* requestURI */
            invokeinterface jakarta.servlet.http.HttpServletResponse.encodeRedirectURL:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* location */
        start local 13 // java.lang.String location
       113: .line 313
            ldc "HTTP/1.1"
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 116
       114: .line 314
            aload 12 /* internalResponse */
            aload 13 /* location */
            sipush 303
            invokevirtual org.apache.catalina.connector.Response.sendRedirect:(Ljava/lang/String;I)V
       115: .line 315
            goto 117
       116: .line 316
      StackMap locals: org.apache.catalina.connector.Response java.lang.String
      StackMap stack:
            aload 12 /* internalResponse */
            aload 13 /* location */
            sipush 302
            invokevirtual org.apache.catalina.connector.Response.sendRedirect:(Ljava/lang/String;I)V
        end local 13 // java.lang.String location
        end local 12 // org.apache.catalina.connector.Response internalResponse
       117: .line 319
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 11 // java.lang.String password
        end local 10 // java.lang.String username
        end local 9 // org.apache.catalina.Realm realm
        end local 8 // org.apache.tomcat.util.descriptor.web.LoginConfig config
        end local 7 // boolean loginAction
        end local 6 // java.lang.String requestURI
        end local 5 // java.lang.String contextPath
        end local 4 // java.security.Principal principal
        end local 3 // org.apache.catalina.Session session
        end local 2 // jakarta.servlet.http.HttpServletResponse response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  118     0               this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0  118     1            request  Lorg/apache/catalina/connector/Request;
            0  118     2           response  Ljakarta/servlet/http/HttpServletResponse;
            1  118     3            session  Lorg/apache/catalina/Session;
            2  118     4          principal  Ljava/security/Principal;
            7   18     5           username  Ljava/lang/String;
            8   18     6           password  Ljava/lang/String;
           33  118     5        contextPath  Ljava/lang/String;
           34  118     6         requestURI  Ljava/lang/String;
           37  118     7        loginAction  Z
           38  118     8             config  Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
           41   47     9           location  Ljava/lang/StringBuilder;
           60  118     9              realm  Lorg/apache/catalina/Realm;
           63  118    10           username  Ljava/lang/String;
           64  118    11           password  Ljava/lang/String;
           76   79    12  expectedSessionId  Ljava/lang/String;
           88   94    12                uri  Ljava/lang/String;
           89   94    13              saved  Lorg/apache/catalina/authenticator/SavedRequest;
          104  110    12                uri  Ljava/lang/String;
          105  110    13              saved  Lorg/apache/catalina/authenticator/SavedRequest;
          112  117    12   internalResponse  Lorg/apache/catalina/connector/Response;
          113  117    13           location  Ljava/lang/String;
      Exception table:
        from    to  target  type
          50    51      52  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  protected boolean isContinuationRequired(org.apache.catalina.connector.Request);
    descriptor: (Lorg/apache/catalina/connector/Request;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
         0: .line 328
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPath:()Ljava/lang/String;
            astore 2 /* contextPath */
        start local 2 // java.lang.String contextPath
         1: .line 329
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getDecodedRequestURI:()Ljava/lang/String;
            astore 3 /* decodedRequestURI */
        start local 3 // java.lang.String decodedRequestURI
         2: .line 330
            aload 3 /* decodedRequestURI */
            aload 2 /* contextPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 331
            aload 3 /* decodedRequestURI */
            ldc "/j_security_check"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 332
            iconst_1
            ireturn
         5: .line 341
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* request */
            iconst_0
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 4 /* session */
        start local 4 // org.apache.catalina.Session session
         6: .line 342
            aload 4 /* session */
            ifnull 11
         7: .line 343
            aload 4 /* session */
            ldc "org.apache.catalina.authenticator.REQUEST"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.authenticator.SavedRequest
            astore 5 /* savedRequest */
        start local 5 // org.apache.catalina.authenticator.SavedRequest savedRequest
         8: .line 344
            aload 5 /* savedRequest */
            ifnull 11
         9: .line 345
            aload 3 /* decodedRequestURI */
            aload 5 /* savedRequest */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getDecodedRequestURI:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 346
            iconst_1
            ireturn
        end local 5 // org.apache.catalina.authenticator.SavedRequest savedRequest
        11: .line 350
      StackMap locals: org.apache.catalina.Session
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // org.apache.catalina.Session session
        end local 3 // java.lang.String decodedRequestURI
        end local 2 // java.lang.String contextPath
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0   12     1            request  Lorg/apache/catalina/connector/Request;
            1   12     2        contextPath  Ljava/lang/String;
            2   12     3  decodedRequestURI  Ljava/lang/String;
            6   12     4            session  Lorg/apache/catalina/Session;
            8   11     5       savedRequest  Lorg/apache/catalina/authenticator/SavedRequest;
    MethodParameters:
         Name  Flags
      request  

  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.FormAuthenticator this
         0: .line 356
            ldc "FORM"
            areturn
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/authenticator/FormAuthenticator;

  protected void register(org.apache.catalina.connector.Request, jakarta.servlet.http.HttpServletResponse, java.security.Principal, java.lang.String, java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Ljava/security/Principal;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=10, args_size=9
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // jakarta.servlet.http.HttpServletResponse response
        start local 3 // java.security.Principal principal
        start local 4 // java.lang.String authType
        start local 5 // java.lang.String username
        start local 6 // java.lang.String password
        start local 7 // boolean alwaysUseSession
        start local 8 // boolean cache
         0: .line 365
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 3 /* principal */
            aload 4 /* authType */
            aload 5 /* username */
            aload 6 /* password */
            iload 7 /* alwaysUseSession */
            iload 8 /* cache */
            invokespecial org.apache.catalina.authenticator.AuthenticatorBase.register:(Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Ljava/security/Principal;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V
         1: .line 369
            iload 8 /* cache */
            ifne 12
         2: .line 370
            aload 1 /* request */
            iconst_0
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 9 /* session */
        start local 9 // org.apache.catalina.Session session
         3: .line 371
            aload 9 /* session */
            ifnull 12
         4: .line 372
            aload 5 /* username */
            ifnull 7
         5: .line 373
            aload 9 /* session */
            ldc "org.apache.catalina.session.USERNAME"
            aload 5 /* username */
            invokeinterface org.apache.catalina.Session.setNote:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 374
            goto 8
         7: .line 375
      StackMap locals: org.apache.catalina.Session
      StackMap stack:
            aload 9 /* session */
            ldc "org.apache.catalina.session.USERNAME"
            invokeinterface org.apache.catalina.Session.removeNote:(Ljava/lang/String;)V
         8: .line 377
      StackMap locals:
      StackMap stack:
            aload 6 /* password */
            ifnull 11
         9: .line 378
            aload 9 /* session */
            ldc "org.apache.catalina.session.PASSWORD"
            aload 6 /* password */
            invokeinterface org.apache.catalina.Session.setNote:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 379
            goto 12
        11: .line 380
      StackMap locals:
      StackMap stack:
            aload 9 /* session */
            ldc "org.apache.catalina.session.PASSWORD"
            invokeinterface org.apache.catalina.Session.removeNote:(Ljava/lang/String;)V
        end local 9 // org.apache.catalina.Session session
        12: .line 384
      StackMap locals:
      StackMap stack:
            return
        end local 8 // boolean cache
        end local 7 // boolean alwaysUseSession
        end local 6 // java.lang.String password
        end local 5 // java.lang.String username
        end local 4 // java.lang.String authType
        end local 3 // java.security.Principal principal
        end local 2 // jakarta.servlet.http.HttpServletResponse response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0   13     1           request  Lorg/apache/catalina/connector/Request;
            0   13     2          response  Ljakarta/servlet/http/HttpServletResponse;
            0   13     3         principal  Ljava/security/Principal;
            0   13     4          authType  Ljava/lang/String;
            0   13     5          username  Ljava/lang/String;
            0   13     6          password  Ljava/lang/String;
            0   13     7  alwaysUseSession  Z
            0   13     8             cache  Z
            3   12     9           session  Lorg/apache/catalina/Session;
    MethodParameters:
                  Name  Flags
      request           
      response          
      principal         
      authType          
      username          
      password          
      alwaysUseSession  
      cache             

  protected void forwardToLoginPage(org.apache.catalina.connector.Request, jakarta.servlet.http.HttpServletResponse, org.apache.tomcat.util.descriptor.web.LoginConfig);
    descriptor: (Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Lorg/apache/tomcat/util/descriptor/web/LoginConfig;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // jakarta.servlet.http.HttpServletResponse response
        start local 3 // org.apache.tomcat.util.descriptor.web.LoginConfig config
         0: .line 402
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 5
         1: .line 403
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "formAuthenticator.forwardLogin"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 404
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getMethod:()Ljava/lang/String;
            aastore
            dup
            iconst_2
         3: .line 405
            aload 3 /* config */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getLoginPage:()Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
         4: .line 403
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         5: .line 408
      StackMap locals:
      StackMap stack:
            aload 3 /* config */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getLoginPage:()Ljava/lang/String;
            astore 4 /* loginPage */
        start local 4 // java.lang.String loginPage
         6: .line 409
            aload 4 /* loginPage */
            ifnull 7
            aload 4 /* loginPage */
            invokevirtual java.lang.String.length:()I
            ifne 15
         7: .line 410
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "formAuthenticator.noLoginPage"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 411
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
         9: .line 410
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
        10: .line 412
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            aload 5 /* msg */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        11: .line 413
            aload 2 /* response */
            sipush 500
        12: .line 414
            aload 5 /* msg */
        13: .line 413
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
        14: .line 415
            return
        end local 5 // java.lang.String msg
        15: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.getChangeSessionIdOnAuthentication:()Z
            ifeq 20
        16: .line 419
            aload 1 /* request */
            iconst_0
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 5 /* session */
        start local 5 // org.apache.catalina.Session session
        17: .line 420
            aload 5 /* session */
            ifnull 20
        18: .line 421
            aload 0 /* this */
            aload 1 /* request */
            aload 5 /* session */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.changeSessionID:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/Session;)Ljava/lang/String;
            astore 6 /* newSessionId */
        start local 6 // java.lang.String newSessionId
        19: .line 422
            aload 5 /* session */
            ldc "org.apache.catalina.authenticator.SESSION_ID"
            aload 6 /* newSessionId */
            invokeinterface org.apache.catalina.Session.setNote:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 6 // java.lang.String newSessionId
        end local 5 // org.apache.catalina.Session session
        20: .line 427
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getMethod:()Ljava/lang/String;
            astore 5 /* oldMethod */
        start local 5 // java.lang.String oldMethod
        21: .line 428
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
            ldc "GET"
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        22: .line 431
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
            aload 4 /* loginPage */
            invokeinterface jakarta.servlet.ServletContext.getRequestDispatcher:(Ljava/lang/String;)Ljakarta/servlet/RequestDispatcher;
        23: .line 430
            astore 6 /* disp */
        start local 6 // jakarta.servlet.RequestDispatcher disp
        24: .line 433
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestInitEvent:(Ljakarta/servlet/ServletRequest;)Z
            ifeq 40
        25: .line 434
            aload 6 /* disp */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            aload 2 /* response */
            invokeinterface jakarta.servlet.RequestDispatcher.forward:(Ljakarta/servlet/ServletRequest;Ljakarta/servlet/ServletResponse;)V
        26: .line 435
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestDestroyEvent:(Ljakarta/servlet/ServletRequest;)Z
            pop
        27: .line 437
            goto 40
      StackMap locals: org.apache.catalina.authenticator.FormAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.descriptor.web.LoginConfig java.lang.String java.lang.String jakarta.servlet.RequestDispatcher
      StackMap stack: java.lang.Throwable
        28: astore 7 /* t */
        start local 7 // java.lang.Throwable t
        29: .line 438
            aload 7 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        30: .line 439
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "formAuthenticator.forwardLoginFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
        31: .line 440
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            aload 8 /* msg */
            aload 7 /* t */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        32: .line 441
            aload 1 /* request */
            ldc "jakarta.servlet.error.exception"
            aload 7 /* t */
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        33: .line 442
            aload 2 /* response */
            sipush 500
        34: .line 443
            aload 8 /* msg */
        35: .line 442
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
        end local 8 // java.lang.String msg
        end local 7 // java.lang.Throwable t
        36: .line 446
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 5 /* oldMethod */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
            goto 41
        37: .line 444
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        38: .line 446
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 5 /* oldMethod */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        39: .line 447
            aload 9
            athrow
        40: .line 446
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 5 /* oldMethod */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        41: .line 448
      StackMap locals:
      StackMap stack:
            return
        end local 6 // jakarta.servlet.RequestDispatcher disp
        end local 5 // java.lang.String oldMethod
        end local 4 // java.lang.String loginPage
        end local 3 // org.apache.tomcat.util.descriptor.web.LoginConfig config
        end local 2 // jakarta.servlet.http.HttpServletResponse response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0   42     1       request  Lorg/apache/catalina/connector/Request;
            0   42     2      response  Ljakarta/servlet/http/HttpServletResponse;
            0   42     3        config  Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
            6   42     4     loginPage  Ljava/lang/String;
           10   15     5           msg  Ljava/lang/String;
           17   20     5       session  Lorg/apache/catalina/Session;
           19   20     6  newSessionId  Ljava/lang/String;
           21   42     5     oldMethod  Ljava/lang/String;
           24   42     6          disp  Ljakarta/servlet/RequestDispatcher;
           29   36     7             t  Ljava/lang/Throwable;
           31   36     8           msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
          24    27      28  Class java.lang.Throwable
          24    36      37  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  
      config    

  protected void forwardToErrorPage(org.apache.catalina.connector.Request, jakarta.servlet.http.HttpServletResponse, org.apache.tomcat.util.descriptor.web.LoginConfig);
    descriptor: (Lorg/apache/catalina/connector/Request;Ljakarta/servlet/http/HttpServletResponse;Lorg/apache/tomcat/util/descriptor/web/LoginConfig;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // jakarta.servlet.http.HttpServletResponse response
        start local 3 // org.apache.tomcat.util.descriptor.web.LoginConfig config
         0: .line 466
            aload 3 /* config */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getErrorPage:()Ljava/lang/String;
            astore 4 /* errorPage */
        start local 4 // java.lang.String errorPage
         1: .line 467
            aload 4 /* errorPage */
            ifnull 2
            aload 4 /* errorPage */
            invokevirtual java.lang.String.length:()I
            ifne 10
         2: .line 468
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "formAuthenticator.noErrorPage"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 469
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
         4: .line 468
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         5: .line 470
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            aload 5 /* msg */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
         6: .line 471
            aload 2 /* response */
            sipush 500
         7: .line 472
            aload 5 /* msg */
         8: .line 471
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
         9: .line 473
            return
        end local 5 // java.lang.String msg
        10: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
            aload 3 /* config */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getErrorPage:()Ljava/lang/String;
            invokeinterface jakarta.servlet.ServletContext.getRequestDispatcher:(Ljava/lang/String;)Ljakarta/servlet/RequestDispatcher;
        11: .line 476
            astore 5 /* disp */
        start local 5 // jakarta.servlet.RequestDispatcher disp
        12: .line 479
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestInitEvent:(Ljakarta/servlet/ServletRequest;)Z
            ifeq 24
        13: .line 480
            aload 5 /* disp */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            aload 2 /* response */
            invokeinterface jakarta.servlet.RequestDispatcher.forward:(Ljakarta/servlet/ServletRequest;Ljakarta/servlet/ServletResponse;)V
        14: .line 481
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.context:Lorg/apache/catalina/Context;
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestDestroyEvent:(Ljakarta/servlet/ServletRequest;)Z
            pop
        15: .line 483
            goto 24
      StackMap locals: org.apache.catalina.authenticator.FormAuthenticator org.apache.catalina.connector.Request jakarta.servlet.http.HttpServletResponse org.apache.tomcat.util.descriptor.web.LoginConfig java.lang.String jakarta.servlet.RequestDispatcher
      StackMap stack: java.lang.Throwable
        16: astore 6 /* t */
        start local 6 // java.lang.Throwable t
        17: .line 484
            aload 6 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        18: .line 485
            getstatic org.apache.catalina.authenticator.FormAuthenticator.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "formAuthenticator.forwardErrorFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
        19: .line 486
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.log:Lorg/apache/juli/logging/Log;
            aload 7 /* msg */
            aload 6 /* t */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        20: .line 487
            aload 1 /* request */
            ldc "jakarta.servlet.error.exception"
            aload 6 /* t */
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 488
            aload 2 /* response */
            sipush 500
        22: .line 489
            aload 7 /* msg */
        23: .line 488
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
        end local 7 // java.lang.String msg
        end local 6 // java.lang.Throwable t
        24: .line 491
      StackMap locals:
      StackMap stack:
            return
        end local 5 // jakarta.servlet.RequestDispatcher disp
        end local 4 // java.lang.String errorPage
        end local 3 // org.apache.tomcat.util.descriptor.web.LoginConfig config
        end local 2 // jakarta.servlet.http.HttpServletResponse response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0   25     1    request  Lorg/apache/catalina/connector/Request;
            0   25     2   response  Ljakarta/servlet/http/HttpServletResponse;
            0   25     3     config  Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
            1   25     4  errorPage  Ljava/lang/String;
            5   10     5        msg  Ljava/lang/String;
           12   25     5       disp  Ljakarta/servlet/RequestDispatcher;
           17   24     6          t  Ljava/lang/Throwable;
           19   24     7        msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
          12    15      16  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  
      config    

  protected boolean matchRequest(org.apache.catalina.connector.Request);
    descriptor: (Lorg/apache/catalina/connector/Request;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
         0: .line 503
            aload 1 /* request */
            iconst_0
            invokevirtual org.apache.catalina.connector.Request.getSessionInternal:(Z)Lorg/apache/catalina/Session;
            astore 2 /* session */
        start local 2 // org.apache.catalina.Session session
         1: .line 504
            aload 2 /* session */
            ifnonnull 3
         2: .line 505
            iconst_0
            ireturn
         3: .line 509
      StackMap locals: org.apache.catalina.Session
      StackMap stack:
            aload 2 /* session */
            ldc "org.apache.catalina.authenticator.REQUEST"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.authenticator.SavedRequest
            astore 3 /* sreq */
        start local 3 // org.apache.catalina.authenticator.SavedRequest sreq
         4: .line 510
            aload 3 /* sreq */
            ifnonnull 6
         5: .line 511
            iconst_0
            ireturn
         6: .line 515
      StackMap locals: org.apache.catalina.authenticator.SavedRequest
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.cache:Z
            ifeq 7
            aload 2 /* session */
            invokeinterface org.apache.catalina.Session.getPrincipal:()Ljava/security/Principal;
            ifnull 8
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            getfield org.apache.catalina.authenticator.FormAuthenticator.cache:Z
            ifne 9
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getPrincipal:()Ljava/security/Principal;
            ifnonnull 9
         8: .line 516
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 520
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.authenticator.FormAuthenticator.getChangeSessionIdOnAuthentication:()Z
            ifeq 13
        10: .line 521
            aload 2 /* session */
            ldc "org.apache.catalina.authenticator.SESSION_ID"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* expectedSessionId */
        start local 4 // java.lang.String expectedSessionId
        11: .line 522
            aload 4 /* expectedSessionId */
            ifnull 12
            aload 4 /* expectedSessionId */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequestedSessionId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 523
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.lang.String expectedSessionId
        13: .line 528
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getDecodedRequestURI:()Ljava/lang/String;
            astore 4 /* decodedRequestURI */
        start local 4 // java.lang.String decodedRequestURI
        14: .line 529
            aload 4 /* decodedRequestURI */
            ifnonnull 16
        15: .line 530
            iconst_0
            ireturn
        16: .line 532
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* decodedRequestURI */
            aload 3 /* sreq */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getDecodedRequestURI:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 4 // java.lang.String decodedRequestURI
        end local 3 // org.apache.catalina.authenticator.SavedRequest sreq
        end local 2 // org.apache.catalina.Session session
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0   17     1            request  Lorg/apache/catalina/connector/Request;
            1   17     2            session  Lorg/apache/catalina/Session;
            4   17     3               sreq  Lorg/apache/catalina/authenticator/SavedRequest;
           11   13     4  expectedSessionId  Ljava/lang/String;
           14   17     4  decodedRequestURI  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      request  

  protected boolean restoreRequest(org.apache.catalina.connector.Request, org.apache.catalina.Session);
    descriptor: (Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/Session;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=15, args_size=3
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // org.apache.catalina.Session session
         0: .line 551
            aload 2 /* session */
            ldc "org.apache.catalina.authenticator.REQUEST"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.authenticator.SavedRequest
            astore 3 /* saved */
        start local 3 // org.apache.catalina.authenticator.SavedRequest saved
         1: .line 552
            aload 2 /* session */
            ldc "org.apache.catalina.authenticator.REQUEST"
            invokeinterface org.apache.catalina.Session.removeNote:(Ljava/lang/String;)V
         2: .line 553
            aload 2 /* session */
            ldc "org.apache.catalina.authenticator.SESSION_ID"
            invokeinterface org.apache.catalina.Session.removeNote:(Ljava/lang/String;)V
         3: .line 554
            aload 3 /* saved */
            ifnonnull 5
         4: .line 555
            iconst_0
            ireturn
         5: .line 562
      StackMap locals: org.apache.catalina.authenticator.SavedRequest
      StackMap stack:
            sipush 4096
            newarray 8
            astore 4 /* buffer */
        start local 4 // byte[] buffer
         6: .line 563
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.createInputStream:()Ljakarta/servlet/ServletInputStream;
            astore 5 /* is */
        start local 5 // java.io.InputStream is
         7: .line 564
      StackMap locals: byte[] java.io.InputStream
      StackMap stack:
            aload 5 /* is */
            aload 4 /* buffer */
            invokevirtual java.io.InputStream.read:([B)I
            ifge 7
         8: .line 569
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.clearCookies:()V
         9: .line 570
            aload 3 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getCookies:()Ljava/util/Iterator;
            astore 6 /* cookies */
        start local 6 // java.util.Iterator cookies
        10: .line 571
            goto 12
        11: .line 572
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* request */
            aload 6 /* cookies */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jakarta.servlet.http.Cookie
            invokevirtual org.apache.catalina.connector.Request.addCookie:(Ljakarta/servlet/http/Cookie;)V
        12: .line 571
      StackMap locals:
      StackMap stack:
            aload 6 /* cookies */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        13: .line 575
            aload 3 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getMethod:()Ljava/lang/String;
            astore 7 /* method */
        start local 7 // java.lang.String method
        14: .line 576
            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;
            astore 8 /* rmh */
        start local 8 // org.apache.tomcat.util.http.MimeHeaders rmh
        15: .line 577
            aload 8 /* rmh */
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.recycle:()V
        16: .line 578
            ldc "GET"
            aload 7 /* method */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 19
        17: .line 579
            ldc "HEAD"
            aload 7 /* method */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 19
        18: .line 578
            iconst_0
            goto 20
      StackMap locals: java.lang.String org.apache.tomcat.util.http.MimeHeaders
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: istore 9 /* cacheable */
        start local 9 // boolean cacheable
        21: .line 580
            aload 3 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getHeaderNames:()Ljava/util/Iterator;
            astore 10 /* names */
        start local 10 // java.util.Iterator names
        22: .line 581
            goto 30
        23: .line 582
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 10 /* names */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* name */
        start local 11 // java.lang.String name
        24: .line 586
            ldc "If-Modified-Since"
            aload 11 /* name */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 30
        25: .line 587
            iload 9 /* cacheable */
            ifeq 26
            ldc "If-None-Match"
            aload 11 /* name */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 30
        26: .line 588
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* saved */
            aload 11 /* name */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getHeaderValues:(Ljava/lang/String;)Ljava/util/Iterator;
            astore 12 /* values */
        start local 12 // java.util.Iterator values
        27: .line 589
            goto 29
        28: .line 590
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 8 /* rmh */
            aload 11 /* name */
            invokevirtual org.apache.tomcat.util.http.MimeHeaders.addValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 12 /* values */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        29: .line 589
      StackMap locals:
      StackMap stack:
            aload 12 /* values */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        end local 12 // java.util.Iterator values
        end local 11 // java.lang.String name
        30: .line 581
      StackMap locals:
      StackMap stack:
            aload 10 /* names */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        31: .line 595
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.clearLocales:()V
        32: .line 596
            aload 3 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getLocales:()Ljava/util/Iterator;
            astore 11 /* locales */
        start local 11 // java.util.Iterator locales
        33: .line 597
            goto 35
        34: .line 598
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* request */
            aload 11 /* locales */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Locale
            invokevirtual org.apache.catalina.connector.Request.addLocale:(Ljava/util/Locale;)V
        35: .line 597
      StackMap locals:
      StackMap stack:
            aload 11 /* locales */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        36: .line 601
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.getParameters:()Lorg/apache/tomcat/util/http/Parameters;
            invokevirtual org.apache.tomcat.util.http.Parameters.recycle:()V
        37: .line 603
            aload 3 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getBody:()Lorg/apache/tomcat/util/buf/ByteChunk;
            astore 12 /* body */
        start local 12 // org.apache.tomcat.util.buf.ByteChunk body
        38: .line 605
            aload 12 /* body */
            ifnull 48
        39: .line 606
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
        40: .line 607
            getstatic org.apache.coyote.ActionCode.REQ_SET_BODY_REPLAY:Lorg/apache/coyote/ActionCode;
            aload 12 /* body */
        41: .line 606
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
        42: .line 610
            invokestatic org.apache.tomcat.util.buf.MessageBytes.newInstance:()Lorg/apache/tomcat/util/buf/MessageBytes;
            astore 13 /* contentType */
        start local 13 // org.apache.tomcat.util.buf.MessageBytes contentType
        43: .line 613
            aload 3 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getContentType:()Ljava/lang/String;
            astore 14 /* savedContentType */
        start local 14 // java.lang.String savedContentType
        44: .line 614
            aload 14 /* savedContentType */
            ifnonnull 46
            ldc "POST"
            aload 7 /* method */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 46
        45: .line 615
            ldc "application/x-www-form-urlencoded"
            astore 14 /* savedContentType */
        46: .line 618
      StackMap locals: org.apache.tomcat.util.buf.ByteChunk org.apache.tomcat.util.buf.MessageBytes java.lang.String
      StackMap stack:
            aload 13 /* contentType */
            aload 14 /* savedContentType */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        47: .line 619
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            aload 13 /* contentType */
            invokevirtual org.apache.coyote.Request.setContentType:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
        end local 14 // java.lang.String savedContentType
        end local 13 // org.apache.tomcat.util.buf.MessageBytes contentType
        48: .line 622
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
            aload 7 /* method */
            invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
        49: .line 632
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
            pop
        50: .line 633
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
            pop
        51: .line 634
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getProtocol:()Ljava/lang/String;
            pop
        52: .line 636
            iconst_1
            ireturn
        end local 12 // org.apache.tomcat.util.buf.ByteChunk body
        end local 11 // java.util.Iterator locales
        end local 10 // java.util.Iterator names
        end local 9 // boolean cacheable
        end local 8 // org.apache.tomcat.util.http.MimeHeaders rmh
        end local 7 // java.lang.String method
        end local 6 // java.util.Iterator cookies
        end local 5 // java.io.InputStream is
        end local 4 // byte[] buffer
        end local 3 // org.apache.catalina.authenticator.SavedRequest saved
        end local 2 // org.apache.catalina.Session session
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   53     0              this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0   53     1           request  Lorg/apache/catalina/connector/Request;
            0   53     2           session  Lorg/apache/catalina/Session;
            1   53     3             saved  Lorg/apache/catalina/authenticator/SavedRequest;
            6   53     4            buffer  [B
            7   53     5                is  Ljava/io/InputStream;
           10   53     6           cookies  Ljava/util/Iterator<Ljakarta/servlet/http/Cookie;>;
           14   53     7            method  Ljava/lang/String;
           15   53     8               rmh  Lorg/apache/tomcat/util/http/MimeHeaders;
           21   53     9         cacheable  Z
           22   53    10             names  Ljava/util/Iterator<Ljava/lang/String;>;
           24   30    11              name  Ljava/lang/String;
           27   30    12            values  Ljava/util/Iterator<Ljava/lang/String;>;
           33   53    11           locales  Ljava/util/Iterator<Ljava/util/Locale;>;
           38   53    12              body  Lorg/apache/tomcat/util/buf/ByteChunk;
           43   48    13       contentType  Lorg/apache/tomcat/util/buf/MessageBytes;
           44   48    14  savedContentType  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      request  
      session  

  protected void saveRequest(org.apache.catalina.connector.Request, org.apache.catalina.Session);
    descriptor: (Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/Session;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // org.apache.catalina.Session session
         0: .line 651
            new org.apache.catalina.authenticator.SavedRequest
            dup
            invokespecial org.apache.catalina.authenticator.SavedRequest.<init>:()V
            astore 3 /* saved */
        start local 3 // org.apache.catalina.authenticator.SavedRequest saved
         1: .line 652
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCookies:()[Ljakarta/servlet/http/Cookie;
            astore 4 /* cookies */
        start local 4 // jakarta.servlet.http.Cookie[] cookies
         2: .line 653
            aload 4 /* cookies */
            ifnull 8
         3: .line 654
            aload 4 /* cookies */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: org.apache.catalina.authenticator.FormAuthenticator org.apache.catalina.connector.Request org.apache.catalina.Session org.apache.catalina.authenticator.SavedRequest jakarta.servlet.http.Cookie[] top int int jakarta.servlet.http.Cookie[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* cookie */
        start local 5 // jakarta.servlet.http.Cookie cookie
         5: .line 655
            aload 3 /* saved */
            aload 5 /* cookie */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.addCookie:(Ljakarta/servlet/http/Cookie;)V
        end local 5 // jakarta.servlet.http.Cookie cookie
         6: .line 654
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 4
         8: .line 658
      StackMap locals: org.apache.catalina.authenticator.FormAuthenticator org.apache.catalina.connector.Request org.apache.catalina.Session org.apache.catalina.authenticator.SavedRequest jakarta.servlet.http.Cookie[]
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getHeaderNames:()Ljava/util/Enumeration;
            astore 5 /* names */
        start local 5 // java.util.Enumeration names
         9: .line 659
            goto 16
        10: .line 660
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 5 /* names */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* name */
        start local 6 // java.lang.String name
        11: .line 661
            aload 1 /* request */
            aload 6 /* name */
            invokevirtual org.apache.catalina.connector.Request.getHeaders:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 7 /* values */
        start local 7 // java.util.Enumeration values
        12: .line 662
            goto 15
        13: .line 663
      StackMap locals: java.lang.String java.util.Enumeration
      StackMap stack:
            aload 7 /* values */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* value */
        start local 8 // java.lang.String value
        14: .line 664
            aload 3 /* saved */
            aload 6 /* name */
            aload 8 /* value */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.addHeader:(Ljava/lang/String;Ljava/lang/String;)V
        end local 8 // java.lang.String value
        15: .line 662
      StackMap locals:
      StackMap stack:
            aload 7 /* values */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 13
        end local 7 // java.util.Enumeration values
        end local 6 // java.lang.String name
        16: .line 659
      StackMap locals:
      StackMap stack:
            aload 5 /* names */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 10
        17: .line 667
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getLocales:()Ljava/util/Enumeration;
            astore 6 /* locales */
        start local 6 // java.util.Enumeration locales
        18: .line 668
            goto 21
        19: .line 669
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 6 /* locales */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.Locale
            astore 7 /* locale */
        start local 7 // java.util.Locale locale
        20: .line 670
            aload 3 /* saved */
            aload 7 /* locale */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.addLocale:(Ljava/util/Locale;)V
        end local 7 // java.util.Locale locale
        21: .line 668
      StackMap locals:
      StackMap stack:
            aload 6 /* locales */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 19
        22: .line 674
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getResponse:()Lorg/apache/catalina/connector/Response;
            getstatic org.apache.coyote.ContinueResponseTiming.ALWAYS:Lorg/apache/coyote/ContinueResponseTiming;
            invokevirtual org.apache.catalina.connector.Response.sendAcknowledgement:(Lorg/apache/coyote/ContinueResponseTiming;)V
        23: .line 676
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getConnector:()Lorg/apache/catalina/connector/Connector;
            invokevirtual org.apache.catalina.connector.Connector.getMaxSavePostSize:()I
            istore 7 /* maxSavePostSize */
        start local 7 // int maxSavePostSize
        24: .line 677
            iload 7 /* maxSavePostSize */
            ifeq 36
        25: .line 678
            new org.apache.tomcat.util.buf.ByteChunk
            dup
            invokespecial org.apache.tomcat.util.buf.ByteChunk.<init>:()V
            astore 8 /* body */
        start local 8 // org.apache.tomcat.util.buf.ByteChunk body
        26: .line 679
            aload 8 /* body */
            iload 7 /* maxSavePostSize */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.setLimit:(I)V
        27: .line 681
            sipush 4096
            newarray 8
            astore 9 /* buffer */
        start local 9 // byte[] buffer
        28: .line 683
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getInputStream:()Ljakarta/servlet/ServletInputStream;
            astore 11 /* is */
        start local 11 // java.io.InputStream is
        29: .line 685
            goto 31
        start local 10 // int bytesRead
        30: .line 686
      StackMap locals: org.apache.catalina.authenticator.FormAuthenticator org.apache.catalina.connector.Request org.apache.catalina.Session org.apache.catalina.authenticator.SavedRequest jakarta.servlet.http.Cookie[] java.util.Enumeration java.util.Enumeration int org.apache.tomcat.util.buf.ByteChunk byte[] int java.io.InputStream
      StackMap stack:
            aload 8 /* body */
            aload 9 /* buffer */
            iconst_0
            iload 10 /* bytesRead */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.append:([BII)V
        end local 10 // int bytesRead
        31: .line 685
      StackMap locals: org.apache.catalina.authenticator.FormAuthenticator org.apache.catalina.connector.Request org.apache.catalina.Session org.apache.catalina.authenticator.SavedRequest jakarta.servlet.http.Cookie[] java.util.Enumeration java.util.Enumeration int org.apache.tomcat.util.buf.ByteChunk byte[] top java.io.InputStream
      StackMap stack:
            aload 11 /* is */
            aload 9 /* buffer */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 10 /* bytesRead */
        start local 10 // int bytesRead
        32: ifge 30
        33: .line 690
            aload 8 /* body */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            ifle 36
        34: .line 691
            aload 3 /* saved */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getContentType:()Ljava/lang/String;
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setContentType:(Ljava/lang/String;)V
        35: .line 692
            aload 3 /* saved */
            aload 8 /* body */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setBody:(Lorg/apache/tomcat/util/buf/ByteChunk;)V
        end local 11 // java.io.InputStream is
        end local 10 // int bytesRead
        end local 9 // byte[] buffer
        end local 8 // org.apache.tomcat.util.buf.ByteChunk body
        36: .line 696
      StackMap locals: org.apache.catalina.authenticator.FormAuthenticator org.apache.catalina.connector.Request org.apache.catalina.Session org.apache.catalina.authenticator.SavedRequest jakarta.servlet.http.Cookie[] java.util.Enumeration java.util.Enumeration int
      StackMap stack:
            aload 3 /* saved */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getMethod:()Ljava/lang/String;
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setMethod:(Ljava/lang/String;)V
        37: .line 697
            aload 3 /* saved */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setQueryString:(Ljava/lang/String;)V
        38: .line 698
            aload 3 /* saved */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setRequestURI:(Ljava/lang/String;)V
        39: .line 699
            aload 3 /* saved */
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getDecodedRequestURI:()Ljava/lang/String;
            invokevirtual org.apache.catalina.authenticator.SavedRequest.setDecodedRequestURI:(Ljava/lang/String;)V
        40: .line 702
            aload 2 /* session */
            ldc "org.apache.catalina.authenticator.REQUEST"
            aload 3 /* saved */
            invokeinterface org.apache.catalina.Session.setNote:(Ljava/lang/String;Ljava/lang/Object;)V
        41: .line 703
            return
        end local 7 // int maxSavePostSize
        end local 6 // java.util.Enumeration locales
        end local 5 // java.util.Enumeration names
        end local 4 // jakarta.servlet.http.Cookie[] cookies
        end local 3 // org.apache.catalina.authenticator.SavedRequest saved
        end local 2 // org.apache.catalina.Session session
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0   42     1          request  Lorg/apache/catalina/connector/Request;
            0   42     2          session  Lorg/apache/catalina/Session;
            1   42     3            saved  Lorg/apache/catalina/authenticator/SavedRequest;
            2   42     4          cookies  [Ljakarta/servlet/http/Cookie;
            5    6     5           cookie  Ljakarta/servlet/http/Cookie;
            9   42     5            names  Ljava/util/Enumeration<Ljava/lang/String;>;
           11   16     6             name  Ljava/lang/String;
           12   16     7           values  Ljava/util/Enumeration<Ljava/lang/String;>;
           14   15     8            value  Ljava/lang/String;
           18   42     6          locales  Ljava/util/Enumeration<Ljava/util/Locale;>;
           20   21     7           locale  Ljava/util/Locale;
           24   42     7  maxSavePostSize  I
           26   36     8             body  Lorg/apache/tomcat/util/buf/ByteChunk;
           28   36     9           buffer  [B
           30   31    10        bytesRead  I
           32   36    10        bytesRead  I
           29   36    11               is  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      request  
      session  

  protected java.lang.String savedRequestURL(org.apache.catalina.Session);
    descriptor: (Lorg/apache/catalina/Session;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.catalina.authenticator.FormAuthenticator this
        start local 1 // org.apache.catalina.Session session
         0: .line 715
            aload 1 /* session */
            ldc "org.apache.catalina.authenticator.REQUEST"
            invokeinterface org.apache.catalina.Session.getNote:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.authenticator.SavedRequest
         1: .line 714
            astore 2 /* saved */
        start local 2 // org.apache.catalina.authenticator.SavedRequest saved
         2: .line 716
            aload 2 /* saved */
            ifnonnull 4
         3: .line 717
            aconst_null
            areturn
         4: .line 719
      StackMap locals: org.apache.catalina.authenticator.SavedRequest
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getRequestURI:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         5: .line 720
            aload 2 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getQueryString:()Ljava/lang/String;
            ifnull 8
         6: .line 721
            aload 3 /* sb */
            bipush 63
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 722
            aload 3 /* sb */
            aload 2 /* saved */
            invokevirtual org.apache.catalina.authenticator.SavedRequest.getQueryString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 724
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // org.apache.catalina.authenticator.SavedRequest saved
        end local 1 // org.apache.catalina.Session session
        end local 0 // org.apache.catalina.authenticator.FormAuthenticator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/apache/catalina/authenticator/FormAuthenticator;
            0    9     1  session  Lorg/apache/catalina/Session;
            2    9     2    saved  Lorg/apache/catalina/authenticator/SavedRequest;
            5    9     3       sb  Ljava/lang/StringBuilder;
    MethodParameters:
         Name  Flags
      session  
}
SourceFile: "FormAuthenticator.java"