public class org.apache.catalina.realm.CombinedRealm extends org.apache.catalina.realm.RealmBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.realm.CombinedRealm
  super_class: org.apache.catalina.realm.RealmBase
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected final java.util.List<org.apache.catalina.Realm> realms;
    descriptor: Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/catalina/Realm;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 49
            ldc Lorg/apache/catalina/realm/CombinedRealm;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 47
            aload 0 /* this */
            invokespecial org.apache.catalina.realm.RealmBase.<init>:()V
         1: .line 54
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
         2: .line 47
            return
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/realm/CombinedRealm;

  public void addRealm(org.apache.catalina.Realm);
    descriptor: (Lorg/apache/catalina/Realm;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // org.apache.catalina.Realm theRealm
         0: .line 62
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            aload 1 /* theRealm */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 64
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 6
         2: .line 65
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.addRealm"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 66
            aload 1 /* theRealm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         4: .line 67
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            aastore
         5: .line 65
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            pop
         6: .line 69
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.catalina.Realm theRealm
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/catalina/realm/CombinedRealm;
            0    7     1  theRealm  Lorg/apache/catalina/Realm;
    MethodParameters:
          Name  Flags
      theRealm  

  public javax.management.ObjectName[] getRealms();
    descriptor: ()[Ljavax/management/ObjectName;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 76
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray javax.management.ObjectName
            astore 1 /* result */
        start local 1 // javax.management.ObjectName[] result
         1: .line 77
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.apache.catalina.realm.CombinedRealm javax.management.ObjectName[] top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 2 /* realm */
        start local 2 // org.apache.catalina.Realm realm
         3: .line 78
            aload 2 /* realm */
            instanceof org.apache.catalina.realm.RealmBase
            ifeq 7
         4: .line 79
            aload 1 /* result */
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            aload 2 /* realm */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
         5: .line 80
            aload 2 /* realm */
            checkcast org.apache.catalina.realm.RealmBase
            invokevirtual org.apache.catalina.realm.RealmBase.getObjectName:()Ljavax/management/ObjectName;
         6: .line 79
            aastore
        end local 2 // org.apache.catalina.Realm realm
         7: .line 77
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 83
            aload 1 /* result */
            areturn
        end local 1 // javax.management.ObjectName[] result
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/apache/catalina/realm/CombinedRealm;
            1    9     1  result  [Ljavax/management/ObjectName;
            3    7     2   realm  Lorg/apache/catalina/Realm;

  public org.apache.catalina.Realm[] getNestedRealms();
    descriptor: ()[Lorg/apache/catalina/Realm;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 90
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            iconst_0
            anewarray org.apache.catalina.Realm
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.apache.catalina.Realm[]
            areturn
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/realm/CombinedRealm;

  public java.security.Principal authenticate(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=12, args_size=9
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // java.lang.String username
        start local 2 // java.lang.String clientDigest
        start local 3 // java.lang.String nonce
        start local 4 // java.lang.String nc
        start local 5 // java.lang.String cnonce
        start local 6 // java.lang.String qop
        start local 7 // java.lang.String realmName
        start local 8 // java.lang.String md5a2
         0: .line 110
            aconst_null
            astore 9 /* authenticatedUser */
        start local 9 // java.security.Principal authenticatedUser
         1: .line 112
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 21
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.security.Principal top java.util.Iterator
      StackMap stack:
         2: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 10 /* realm */
        start local 10 // org.apache.catalina.Realm realm
         3: .line 113
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 7
         4: .line 114
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authStart"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* username */
            aastore
            dup
            iconst_1
         5: .line 115
            aload 10 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         6: .line 114
            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
         7: .line 118
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.security.Principal org.apache.catalina.Realm java.util.Iterator
      StackMap stack:
            aload 10 /* realm */
            aload 1 /* username */
            aload 2 /* clientDigest */
            aload 3 /* nonce */
         8: .line 119
            aload 4 /* nc */
            aload 5 /* cnonce */
            aload 6 /* qop */
            aload 7 /* realmName */
            aload 8 /* md5a2 */
         9: .line 118
            invokeinterface org.apache.catalina.Realm.authenticate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
            astore 9 /* authenticatedUser */
        10: .line 121
            aload 9 /* authenticatedUser */
            ifnonnull 16
        11: .line 122
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 21
        12: .line 123
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* username */
            aastore
            dup
            iconst_1
        13: .line 124
            aload 10 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        14: .line 123
            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
        15: .line 126
            goto 21
        16: .line 127
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 22
        17: .line 128
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authSuccess"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 129
            aload 1 /* username */
            aastore
            dup
            iconst_1
            aload 10 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        19: .line 128
            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
        20: .line 131
            goto 22
        end local 10 // org.apache.catalina.Realm realm
        21: .line 112
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.security.Principal top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        22: .line 134
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.security.Principal
      StackMap stack:
            aload 9 /* authenticatedUser */
            areturn
        end local 9 // java.security.Principal authenticatedUser
        end local 8 // java.lang.String md5a2
        end local 7 // java.lang.String realmName
        end local 6 // java.lang.String qop
        end local 5 // java.lang.String cnonce
        end local 4 // java.lang.String nc
        end local 3 // java.lang.String nonce
        end local 2 // java.lang.String clientDigest
        end local 1 // java.lang.String username
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   23     0               this  Lorg/apache/catalina/realm/CombinedRealm;
            0   23     1           username  Ljava/lang/String;
            0   23     2       clientDigest  Ljava/lang/String;
            0   23     3              nonce  Ljava/lang/String;
            0   23     4                 nc  Ljava/lang/String;
            0   23     5             cnonce  Ljava/lang/String;
            0   23     6                qop  Ljava/lang/String;
            0   23     7          realmName  Ljava/lang/String;
            0   23     8              md5a2  Ljava/lang/String;
            1   23     9  authenticatedUser  Ljava/security/Principal;
            3   21    10              realm  Lorg/apache/catalina/Realm;
    MethodParameters:
              Name  Flags
      username      
      clientDigest  
      nonce         
      nc            
      cnonce        
      qop           
      realmName     
      md5a2         

  public java.security.Principal authenticate(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // java.lang.String username
         0: .line 146
            aconst_null
            astore 2 /* authenticatedUser */
        start local 2 // java.security.Principal authenticatedUser
         1: .line 148
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 19
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.security.Principal top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 3 /* realm */
        start local 3 // org.apache.catalina.Realm realm
         3: .line 149
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 7
         4: .line 150
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authStart"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* username */
            aastore
            dup
            iconst_1
         5: .line 151
            aload 3 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         6: .line 150
            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
         7: .line 154
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.security.Principal org.apache.catalina.Realm java.util.Iterator
      StackMap stack:
            aload 3 /* realm */
            aload 1 /* username */
            invokeinterface org.apache.catalina.Realm.authenticate:(Ljava/lang/String;)Ljava/security/Principal;
            astore 2 /* authenticatedUser */
         8: .line 156
            aload 2 /* authenticatedUser */
            ifnonnull 14
         9: .line 157
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 19
        10: .line 158
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* username */
            aastore
            dup
            iconst_1
        11: .line 159
            aload 3 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        12: .line 158
            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
        13: .line 161
            goto 19
        14: .line 162
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 20
        15: .line 163
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authSuccess"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 164
            aload 1 /* username */
            aastore
            dup
            iconst_1
            aload 3 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        17: .line 163
            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
        18: .line 166
            goto 20
        end local 3 // org.apache.catalina.Realm realm
        19: .line 148
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.security.Principal top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        20: .line 169
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.security.Principal
      StackMap stack:
            aload 2 /* authenticatedUser */
            areturn
        end local 2 // java.security.Principal authenticatedUser
        end local 1 // java.lang.String username
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0               this  Lorg/apache/catalina/realm/CombinedRealm;
            0   21     1           username  Ljava/lang/String;
            1   21     2  authenticatedUser  Ljava/security/Principal;
            3   19     3              realm  Lorg/apache/catalina/Realm;
    MethodParameters:
          Name  Flags
      username  

  public java.security.Principal authenticate(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // java.lang.String username
        start local 2 // java.lang.String credentials
         0: .line 183
            aconst_null
            astore 3 /* authenticatedUser */
        start local 3 // java.security.Principal authenticatedUser
         1: .line 185
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 19
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.security.Principal top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 4 /* realm */
        start local 4 // org.apache.catalina.Realm realm
         3: .line 186
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 7
         4: .line 187
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authStart"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* username */
            aastore
            dup
            iconst_1
         5: .line 188
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         6: .line 187
            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
         7: .line 191
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.security.Principal org.apache.catalina.Realm java.util.Iterator
      StackMap stack:
            aload 4 /* realm */
            aload 1 /* username */
            aload 2 /* credentials */
            invokeinterface org.apache.catalina.Realm.authenticate:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
            astore 3 /* authenticatedUser */
         8: .line 193
            aload 3 /* authenticatedUser */
            ifnonnull 14
         9: .line 194
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 19
        10: .line 195
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* username */
            aastore
            dup
            iconst_1
        11: .line 196
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        12: .line 195
            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
        13: .line 198
            goto 19
        14: .line 199
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 20
        15: .line 200
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authSuccess"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 201
            aload 1 /* username */
            aastore
            dup
            iconst_1
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        17: .line 200
            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
        18: .line 203
            goto 20
        end local 4 // org.apache.catalina.Realm realm
        19: .line 185
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.security.Principal top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        20: .line 206
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.lang.String java.lang.String java.security.Principal
      StackMap stack:
            aload 3 /* authenticatedUser */
            areturn
        end local 3 // java.security.Principal authenticatedUser
        end local 2 // java.lang.String credentials
        end local 1 // java.lang.String username
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0               this  Lorg/apache/catalina/realm/CombinedRealm;
            0   21     1           username  Ljava/lang/String;
            0   21     2        credentials  Ljava/lang/String;
            1   21     3  authenticatedUser  Ljava/security/Principal;
            3   19     4              realm  Lorg/apache/catalina/Realm;
    MethodParameters:
             Name  Flags
      username     
      credentials  

  public void setContainer(org.apache.catalina.Container);
    descriptor: (Lorg/apache/catalina/Container;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // org.apache.catalina.Container container
         0: .line 217
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.apache.catalina.Container top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 2 /* realm */
        start local 2 // org.apache.catalina.Realm realm
         2: .line 219
            aload 2 /* realm */
            instanceof org.apache.catalina.realm.RealmBase
            ifeq 6
         3: .line 220
            aload 2 /* realm */
            checkcast org.apache.catalina.realm.RealmBase
         4: .line 221
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.realm.CombinedRealm.getRealmPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/realm"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            aload 2 /* realm */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 220
            invokevirtual org.apache.catalina.realm.RealmBase.setRealmPath:(Ljava/lang/String;)V
         6: .line 225
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.apache.catalina.Container org.apache.catalina.Realm java.util.Iterator
      StackMap stack:
            aload 2 /* realm */
            aload 1 /* container */
            invokeinterface org.apache.catalina.Realm.setContainer:(Lorg/apache/catalina/Container;)V
        end local 2 // org.apache.catalina.Realm realm
         7: .line 217
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.apache.catalina.Container top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 227
            aload 0 /* this */
            aload 1 /* container */
            invokespecial org.apache.catalina.realm.RealmBase.setContainer:(Lorg/apache/catalina/Container;)V
         9: .line 228
            return
        end local 1 // org.apache.catalina.Container container
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/apache/catalina/realm/CombinedRealm;
            0   10     1  container  Lorg/apache/catalina/Container;
            2    7     2      realm  Lorg/apache/catalina/Realm;
    MethodParameters:
           Name  Flags
      container  

  protected void startInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 242
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         1: .line 244
            goto 13
         2: .line 245
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 2 /* realm */
        start local 2 // org.apache.catalina.Realm realm
         3: .line 246
            aload 2 /* realm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 13
         4: .line 248
            aload 2 /* realm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.start:()V
         5: .line 249
            goto 13
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.util.Iterator org.apache.catalina.Realm
      StackMap stack: org.apache.catalina.LifecycleException
         6: astore 3 /* e */
        start local 3 // org.apache.catalina.LifecycleException e
         7: .line 251
            aload 1 /* iter */
            invokeinterface java.util.Iterator.remove:()V
         8: .line 252
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.realmStartFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 253
            aload 2 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        10: .line 252
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        11: .line 253
            aload 3 /* e */
        12: .line 252
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // org.apache.catalina.LifecycleException e
        end local 2 // org.apache.catalina.Realm realm
        13: .line 244
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        14: .line 257
            aload 0 /* this */
            invokespecial org.apache.catalina.realm.RealmBase.startInternal:()V
        15: .line 258
            return
        end local 1 // java.util.Iterator iter
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lorg/apache/catalina/realm/CombinedRealm;
            1   16     1   iter  Ljava/util/Iterator<Lorg/apache/catalina/Realm;>;
            3   13     2  realm  Lorg/apache/catalina/Realm;
            7   13     3      e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
           4     5       6  Class org.apache.catalina.LifecycleException
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected void stopInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 272
            aload 0 /* this */
            invokespecial org.apache.catalina.realm.RealmBase.stopInternal:()V
         1: .line 273
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: org.apache.catalina.realm.CombinedRealm top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 1 /* realm */
        start local 1 // org.apache.catalina.Realm realm
         3: .line 274
            aload 1 /* realm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 5
         4: .line 275
            aload 1 /* realm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.stop:()V
        end local 1 // org.apache.catalina.Realm realm
         5: .line 273
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 278
            return
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/catalina/realm/CombinedRealm;
            3    5     1  realm  Lorg/apache/catalina/Realm;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected void destroyInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 286
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: org.apache.catalina.realm.CombinedRealm top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 1 /* realm */
        start local 1 // org.apache.catalina.Realm realm
         2: .line 287
            aload 1 /* realm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 4
         3: .line 288
            aload 1 /* realm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.destroy:()V
        end local 1 // org.apache.catalina.Realm realm
         4: .line 286
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 291
            aload 0 /* this */
            invokespecial org.apache.catalina.realm.RealmBase.destroyInternal:()V
         6: .line 292
            return
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/catalina/realm/CombinedRealm;
            2    4     1  realm  Lorg/apache/catalina/Realm;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  public void backgroundProcess();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 299
            aload 0 /* this */
            invokespecial org.apache.catalina.realm.RealmBase.backgroundProcess:()V
         1: .line 301
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: org.apache.catalina.realm.CombinedRealm top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 1 /* r */
        start local 1 // org.apache.catalina.Realm r
         3: .line 302
            aload 1 /* r */
            invokeinterface org.apache.catalina.Realm.backgroundProcess:()V
        end local 1 // org.apache.catalina.Realm r
         4: .line 301
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 304
            return
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/realm/CombinedRealm;
            3    4     1     r  Lorg/apache/catalina/Realm;

  public java.security.Principal authenticate(java.security.cert.X509Certificate[]);
    descriptor: ([Ljava/security/cert/X509Certificate;)Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // java.security.cert.X509Certificate[] certs
         0: .line 315
            aconst_null
            astore 2 /* authenticatedUser */
        start local 2 // java.security.Principal authenticatedUser
         1: .line 316
            aconst_null
            astore 3 /* username */
        start local 3 // java.lang.String username
         2: .line 317
            aload 1 /* certs */
            ifnull 4
            aload 1 /* certs */
            arraylength
            ifle 4
         3: .line 318
            aload 1 /* certs */
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
            invokeinterface java.security.Principal.getName:()Ljava/lang/String;
            astore 3 /* username */
         4: .line 321
      StackMap locals: java.security.Principal java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 22
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.security.cert.X509Certificate[] java.security.Principal java.lang.String top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 4 /* realm */
        start local 4 // org.apache.catalina.Realm realm
         6: .line 322
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 10
         7: .line 323
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authStart"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* username */
            aastore
            dup
            iconst_1
         8: .line 324
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         9: .line 323
            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
        10: .line 327
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.security.cert.X509Certificate[] java.security.Principal java.lang.String org.apache.catalina.Realm java.util.Iterator
      StackMap stack:
            aload 4 /* realm */
            aload 1 /* certs */
            invokeinterface org.apache.catalina.Realm.authenticate:([Ljava/security/cert/X509Certificate;)Ljava/security/Principal;
            astore 2 /* authenticatedUser */
        11: .line 329
            aload 2 /* authenticatedUser */
            ifnonnull 17
        12: .line 330
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 22
        13: .line 331
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* username */
            aastore
            dup
            iconst_1
        14: .line 332
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        15: .line 331
            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
        16: .line 334
            goto 22
        17: .line 335
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 23
        18: .line 336
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authSuccess"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        19: .line 337
            aload 3 /* username */
            aastore
            dup
            iconst_1
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        20: .line 336
            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
        21: .line 339
            goto 23
        end local 4 // org.apache.catalina.Realm realm
        22: .line 321
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.security.cert.X509Certificate[] java.security.Principal java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        23: .line 342
      StackMap locals: org.apache.catalina.realm.CombinedRealm java.security.cert.X509Certificate[] java.security.Principal java.lang.String
      StackMap stack:
            aload 2 /* authenticatedUser */
            areturn
        end local 3 // java.lang.String username
        end local 2 // java.security.Principal authenticatedUser
        end local 1 // java.security.cert.X509Certificate[] certs
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   24     0               this  Lorg/apache/catalina/realm/CombinedRealm;
            0   24     1              certs  [Ljava/security/cert/X509Certificate;
            1   24     2  authenticatedUser  Ljava/security/Principal;
            2   24     3           username  Ljava/lang/String;
            6   22     4              realm  Lorg/apache/catalina/Realm;
    MethodParameters:
       Name  Flags
      certs  

  public java.security.Principal authenticate(org.ietf.jgss.GSSContext, boolean);
    descriptor: (Lorg/ietf/jgss/GSSContext;Z)Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // org.ietf.jgss.GSSContext gssContext
        start local 2 // boolean storeCred
         0: .line 350
            aload 1 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.isEstablished:()Z
            ifeq 28
         1: .line 351
            aconst_null
            astore 3 /* authenticatedUser */
        start local 3 // java.security.Principal authenticatedUser
         2: .line 352
            aconst_null
            astore 4 /* gssName */
        start local 4 // org.ietf.jgss.GSSName gssName
         3: .line 354
            aload 1 /* gssContext */
            invokeinterface org.ietf.jgss.GSSContext.getSrcName:()Lorg/ietf/jgss/GSSName;
            astore 4 /* gssName */
         4: .line 355
            goto 8
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSContext int java.security.Principal org.ietf.jgss.GSSName
      StackMap stack: org.ietf.jgss.GSSException
         5: astore 5 /* e */
        start local 5 // org.ietf.jgss.GSSException e
         6: .line 356
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "realmBase.gssNameFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* e */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         7: .line 357
            aconst_null
            areturn
        end local 5 // org.ietf.jgss.GSSException e
         8: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 26
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSContext int java.security.Principal org.ietf.jgss.GSSName top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 5 /* realm */
        start local 5 // org.apache.catalina.Realm realm
        10: .line 361
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 14
        11: .line 362
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authStart"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 363
            aload 4 /* gssName */
            aastore
            dup
            iconst_1
            aload 5 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        13: .line 362
            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
        14: .line 366
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSContext int java.security.Principal org.ietf.jgss.GSSName org.apache.catalina.Realm java.util.Iterator
      StackMap stack:
            aload 5 /* realm */
            aload 1 /* gssContext */
            iload 2 /* storeCred */
            invokeinterface org.apache.catalina.Realm.authenticate:(Lorg/ietf/jgss/GSSContext;Z)Ljava/security/Principal;
            astore 3 /* authenticatedUser */
        15: .line 368
            aload 3 /* authenticatedUser */
            ifnonnull 21
        16: .line 369
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 26
        17: .line 370
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 371
            aload 4 /* gssName */
            aastore
            dup
            iconst_1
            aload 5 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        19: .line 370
            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
        20: .line 373
            goto 26
        21: .line 374
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 27
        22: .line 375
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authSuccess"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        23: .line 376
            aload 4 /* gssName */
            aastore
            dup
            iconst_1
            aload 5 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        24: .line 375
            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
        25: .line 378
            goto 27
        end local 5 // org.apache.catalina.Realm realm
        26: .line 360
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSContext int java.security.Principal org.ietf.jgss.GSSName top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        27: .line 381
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSContext int java.security.Principal org.ietf.jgss.GSSName
      StackMap stack:
            aload 3 /* authenticatedUser */
            areturn
        end local 4 // org.ietf.jgss.GSSName gssName
        end local 3 // java.security.Principal authenticatedUser
        28: .line 385
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean storeCred
        end local 1 // org.ietf.jgss.GSSContext gssContext
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0               this  Lorg/apache/catalina/realm/CombinedRealm;
            0   29     1         gssContext  Lorg/ietf/jgss/GSSContext;
            0   29     2          storeCred  Z
            2   28     3  authenticatedUser  Ljava/security/Principal;
            3   28     4            gssName  Lorg/ietf/jgss/GSSName;
            6    8     5                  e  Lorg/ietf/jgss/GSSException;
           10   26     5              realm  Lorg/apache/catalina/Realm;
      Exception table:
        from    to  target  type
           3     4       5  Class org.ietf.jgss.GSSException
    MethodParameters:
            Name  Flags
      gssContext  
      storeCred   

  public java.security.Principal authenticate(org.ietf.jgss.GSSName, org.ietf.jgss.GSSCredential);
    descriptor: (Lorg/ietf/jgss/GSSName;Lorg/ietf/jgss/GSSCredential;)Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // org.ietf.jgss.GSSName gssName
        start local 2 // org.ietf.jgss.GSSCredential gssCredential
         0: .line 393
            aconst_null
            astore 3 /* authenticatedUser */
        start local 3 // java.security.Principal authenticatedUser
         1: .line 395
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 19
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSName org.ietf.jgss.GSSCredential java.security.Principal top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 4 /* realm */
        start local 4 // org.apache.catalina.Realm realm
         3: .line 396
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 7
         4: .line 397
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authStart"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 398
            aload 1 /* gssName */
            aastore
            dup
            iconst_1
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         6: .line 397
            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
         7: .line 401
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSName org.ietf.jgss.GSSCredential java.security.Principal org.apache.catalina.Realm java.util.Iterator
      StackMap stack:
            aload 4 /* realm */
            aload 1 /* gssName */
            aload 2 /* gssCredential */
            invokeinterface org.apache.catalina.Realm.authenticate:(Lorg/ietf/jgss/GSSName;Lorg/ietf/jgss/GSSCredential;)Ljava/security/Principal;
            astore 3 /* authenticatedUser */
         8: .line 403
            aload 3 /* authenticatedUser */
            ifnonnull 14
         9: .line 404
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 19
        10: .line 405
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        11: .line 406
            aload 1 /* gssName */
            aastore
            dup
            iconst_1
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        12: .line 405
            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
        13: .line 408
            goto 19
        14: .line 409
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 20
        15: .line 410
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.authSuccess"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 411
            aload 1 /* gssName */
            aastore
            dup
            iconst_1
            aload 4 /* realm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        17: .line 410
            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
        18: .line 413
            goto 20
        end local 4 // org.apache.catalina.Realm realm
        19: .line 395
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSName org.ietf.jgss.GSSCredential java.security.Principal top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        20: .line 416
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.ietf.jgss.GSSName org.ietf.jgss.GSSCredential java.security.Principal
      StackMap stack:
            aload 3 /* authenticatedUser */
            areturn
        end local 3 // java.security.Principal authenticatedUser
        end local 2 // org.ietf.jgss.GSSCredential gssCredential
        end local 1 // org.ietf.jgss.GSSName gssName
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0               this  Lorg/apache/catalina/realm/CombinedRealm;
            0   21     1            gssName  Lorg/ietf/jgss/GSSName;
            0   21     2      gssCredential  Lorg/ietf/jgss/GSSCredential;
            1   21     3  authenticatedUser  Ljava/security/Principal;
            3   19     4              realm  Lorg/apache/catalina/Realm;
    MethodParameters:
               Name  Flags
      gssName        
      gssCredential  

  public boolean hasRole(org.apache.catalina.Wrapper, java.security.Principal, java.lang.String);
    descriptor: (Lorg/apache/catalina/Wrapper;Ljava/security/Principal;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // org.apache.catalina.Wrapper wrapper
        start local 2 // java.security.Principal principal
        start local 3 // java.lang.String role
         0: .line 424
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: org.apache.catalina.realm.CombinedRealm org.apache.catalina.Wrapper java.security.Principal java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 4 /* realm */
        start local 4 // org.apache.catalina.Realm realm
         2: .line 425
            aload 4 /* realm */
            aload 1 /* wrapper */
            aload 2 /* principal */
            aload 3 /* role */
            invokeinterface org.apache.catalina.Realm.hasRole:(Lorg/apache/catalina/Wrapper;Ljava/security/Principal;Ljava/lang/String;)Z
            ifeq 4
         3: .line 426
            iconst_1
            ireturn
        end local 4 // org.apache.catalina.Realm realm
         4: .line 424
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 429
            iconst_0
            ireturn
        end local 3 // java.lang.String role
        end local 2 // java.security.Principal principal
        end local 1 // org.apache.catalina.Wrapper wrapper
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/catalina/realm/CombinedRealm;
            0    6     1    wrapper  Lorg/apache/catalina/Wrapper;
            0    6     2  principal  Ljava/security/Principal;
            0    6     3       role  Ljava/lang/String;
            2    4     4      realm  Lorg/apache/catalina/Realm;
    MethodParameters:
           Name  Flags
      wrapper    
      principal  
      role       

  protected java.lang.String getPassword(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // java.lang.String username
         0: .line 437
            new java.lang.UnsupportedOperationException
            dup
         1: .line 438
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.getPassword"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         2: .line 437
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
         3: .line 436
            astore 2 /* uoe */
        start local 2 // java.lang.UnsupportedOperationException uoe
         4: .line 439
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.unexpectedMethod"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 2 /* uoe */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         5: .line 440
            aload 2 /* uoe */
            athrow
        end local 2 // java.lang.UnsupportedOperationException uoe
        end local 1 // java.lang.String username
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/catalina/realm/CombinedRealm;
            0    6     1  username  Ljava/lang/String;
            4    6     2       uoe  Ljava/lang/UnsupportedOperationException;
    MethodParameters:
          Name  Flags
      username  

  protected java.security.Principal getPrincipal(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/security/Principal;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // java.lang.String username
         0: .line 448
            new java.lang.UnsupportedOperationException
            dup
         1: .line 449
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.getPrincipal"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         2: .line 448
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
         3: .line 447
            astore 2 /* uoe */
        start local 2 // java.lang.UnsupportedOperationException uoe
         4: .line 450
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.unexpectedMethod"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 2 /* uoe */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         5: .line 451
            aload 2 /* uoe */
            athrow
        end local 2 // java.lang.UnsupportedOperationException uoe
        end local 1 // java.lang.String username
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/catalina/realm/CombinedRealm;
            0    6     1  username  Ljava/lang/String;
            4    6     2       uoe  Ljava/lang/UnsupportedOperationException;
    MethodParameters:
          Name  Flags
      username  

  public boolean isAvailable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.apache.catalina.realm.CombinedRealm this
         0: .line 457
            aload 0 /* this */
            getfield org.apache.catalina.realm.CombinedRealm.realms:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: org.apache.catalina.realm.CombinedRealm top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Realm
            astore 1 /* realm */
        start local 1 // org.apache.catalina.Realm realm
         2: .line 458
            aload 1 /* realm */
            invokeinterface org.apache.catalina.Realm.isAvailable:()Z
            ifne 4
         3: .line 459
            iconst_0
            ireturn
        end local 1 // org.apache.catalina.Realm realm
         4: .line 457
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 462
            iconst_1
            ireturn
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/apache/catalina/realm/CombinedRealm;
            2    4     1  realm  Lorg/apache/catalina/Realm;

  public void setCredentialHandler(org.apache.catalina.CredentialHandler);
    descriptor: (Lorg/apache/catalina/CredentialHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.realm.CombinedRealm this
        start local 1 // org.apache.catalina.CredentialHandler credentialHandler
         0: .line 470
            getstatic org.apache.catalina.realm.CombinedRealm.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.realm.CombinedRealm.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "combinedRealm.setCredentialHandler"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
         1: .line 471
            aload 0 /* this */
            aload 1 /* credentialHandler */
            invokespecial org.apache.catalina.realm.RealmBase.setCredentialHandler:(Lorg/apache/catalina/CredentialHandler;)V
         2: .line 472
            return
        end local 1 // org.apache.catalina.CredentialHandler credentialHandler
        end local 0 // org.apache.catalina.realm.CombinedRealm this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lorg/apache/catalina/realm/CombinedRealm;
            0    3     1  credentialHandler  Lorg/apache/catalina/CredentialHandler;
    MethodParameters:
                   Name  Flags
      credentialHandler  
}
SourceFile: "CombinedRealm.java"