public final class javax.security.auth.kerberos.KerberosPrincipal implements java.security.Principal, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: javax.security.auth.kerberos.KerberosPrincipal
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -7374788026156829911

  public static final int KRB_NT_UNKNOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int KRB_NT_PRINCIPAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int KRB_NT_SRV_INST;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int KRB_NT_SRV_HST;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int KRB_NT_SRV_XHST;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int KRB_NT_UID;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private transient java.lang.String fullName;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String realm;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient int nameType;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
        start local 1 // java.lang.String name
         0: .line 125
            aload 0 /* this */
            aload 1 /* name */
            iconst_1
            invokespecial javax.security.auth.kerberos.KerberosPrincipal.<init>:(Ljava/lang/String;I)V
         1: .line 126
            return
        end local 1 // java.lang.String name
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/security/auth/kerberos/KerberosPrincipal;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
        start local 1 // java.lang.String name
        start local 2 // int nameType
         0: .line 166
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 168
            aconst_null
            astore 3 /* krb5Principal */
        start local 3 // sun.security.krb5.PrincipalName krb5Principal
         2: .line 172
            new sun.security.krb5.PrincipalName
            dup
            aload 1 /* name */
            iload 2 /* nameType */
            invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;I)V
            astore 3 /* krb5Principal */
         3: .line 173
            goto 6
      StackMap locals: javax.security.auth.kerberos.KerberosPrincipal java.lang.String int sun.security.krb5.PrincipalName
      StackMap stack: sun.security.krb5.KrbException
         4: astore 4 /* e */
        start local 4 // sun.security.krb5.KrbException e
         5: .line 174
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* e */
            invokevirtual sun.security.krb5.KrbException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // sun.security.krb5.KrbException e
         6: .line 177
      StackMap locals:
      StackMap stack:
            aload 3 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.isRealmDeduced:()Z
            ifeq 15
            getstatic sun.security.krb5.Realm.AUTODEDUCEREALM:Z
            ifne 15
         7: .line 178
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 4 /* sm */
        start local 4 // java.lang.SecurityManager sm
         8: .line 179
            aload 4 /* sm */
            ifnull 15
         9: .line 181
            aload 4 /* sm */
            new javax.security.auth.kerberos.ServicePermission
            dup
        10: .line 182
            new java.lang.StringBuilder
            dup
            ldc "@"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.getRealmAsString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc "-"
            invokespecial javax.security.auth.kerberos.ServicePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        11: .line 181
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        12: .line 183
            goto 15
      StackMap locals: javax.security.auth.kerberos.KerberosPrincipal java.lang.String int sun.security.krb5.PrincipalName java.lang.SecurityManager
      StackMap stack: java.lang.SecurityException
        13: pop
        14: .line 185
            new java.lang.SecurityException
            dup
            ldc "Cannot read realm info"
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.SecurityManager sm
        15: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* nameType */
            putfield javax.security.auth.kerberos.KerberosPrincipal.nameType:I
        16: .line 190
            aload 0 /* this */
            aload 3 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
            putfield javax.security.auth.kerberos.KerberosPrincipal.fullName:Ljava/lang/String;
        17: .line 191
            aload 0 /* this */
            aload 3 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
            putfield javax.security.auth.kerberos.KerberosPrincipal.realm:Ljava/lang/String;
        18: .line 192
            return
        end local 3 // sun.security.krb5.PrincipalName krb5Principal
        end local 2 // int nameType
        end local 1 // java.lang.String name
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Ljavax/security/auth/kerberos/KerberosPrincipal;
            0   19     1           name  Ljava/lang/String;
            0   19     2       nameType  I
            2   19     3  krb5Principal  Lsun/security/krb5/PrincipalName;
            5    6     4              e  Lsun/security/krb5/KrbException;
            8   15     4             sm  Ljava/lang/SecurityManager;
      Exception table:
        from    to  target  type
           2     3       4  Class sun.security.krb5.KrbException
           9    12      13  Class java.lang.SecurityException
    MethodParameters:
          Name  Flags
      name      
      nameType  

  public java.lang.String getRealm();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
         0: .line 199
            aload 0 /* this */
            getfield javax.security.auth.kerberos.KerberosPrincipal.realm:Ljava/lang/String;
            areturn
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/security/auth/kerberos/KerberosPrincipal;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
         0: .line 212
            aload 0 /* this */
            invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/security/auth/kerberos/KerberosPrincipal;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
        start local 1 // java.lang.Object other
         0: .line 229
            aload 1 /* other */
            aload 0 /* this */
            if_acmpne 2
         1: .line 230
            iconst_1
            ireturn
         2: .line 232
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            instanceof javax.security.auth.kerberos.KerberosPrincipal
            ifne 4
         3: .line 233
            iconst_0
            ireturn
         4: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
            astore 2 /* myFullName */
        start local 2 // java.lang.String myFullName
         5: .line 236
            aload 1 /* other */
            checkcast javax.security.auth.kerberos.KerberosPrincipal
            invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
            astore 3 /* otherFullName */
        start local 3 // java.lang.String otherFullName
         6: .line 237
            aload 2 /* myFullName */
            aload 3 /* otherFullName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 3 // java.lang.String otherFullName
        end local 2 // java.lang.String myFullName
        end local 1 // java.lang.Object other
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Ljavax/security/auth/kerberos/KerberosPrincipal;
            0    7     1          other  Ljava/lang/Object;
            5    7     2     myFullName  Ljava/lang/String;
            6    7     3  otherFullName  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      other  

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
        start local 1 // java.io.ObjectOutputStream oos
         0: .line 253
            new sun.security.krb5.PrincipalName
            dup
            aload 0 /* this */
            getfield javax.security.auth.kerberos.KerberosPrincipal.fullName:Ljava/lang/String;
            aload 0 /* this */
            getfield javax.security.auth.kerberos.KerberosPrincipal.nameType:I
            invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;I)V
            astore 2 /* krb5Principal */
        start local 2 // sun.security.krb5.PrincipalName krb5Principal
         1: .line 254
            aload 1 /* oos */
            aload 2 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.asn1Encode:()[B
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         2: .line 255
            aload 1 /* oos */
            aload 2 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.getRealm:()Lsun/security/krb5/Realm;
            invokevirtual sun.security.krb5.Realm.asn1Encode:()[B
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         3: .line 256
            goto 6
        end local 2 // sun.security.krb5.PrincipalName krb5Principal
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 3 /* e */
        start local 3 // java.lang.Exception e
         5: .line 257
            new java.io.IOException
            dup
            aload 3 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
        start local 2 // sun.security.krb5.PrincipalName krb5Principal
         6: .line 259
      StackMap locals: sun.security.krb5.PrincipalName
      StackMap stack:
            return
        end local 2 // sun.security.krb5.PrincipalName krb5Principal
        end local 1 // java.io.ObjectOutputStream oos
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Ljavax/security/auth/kerberos/KerberosPrincipal;
            0    7     1            oos  Ljava/io/ObjectOutputStream;
            1    4     2  krb5Principal  Lsun/security/krb5/PrincipalName;
            6    7     2  krb5Principal  Lsun/security/krb5/PrincipalName;
            5    6     3              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      oos   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 266
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            checkcast byte[]
            astore 2 /* asn1EncPrincipal */
        start local 2 // byte[] asn1EncPrincipal
         1: .line 267
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* encRealm */
        start local 3 // byte[] encRealm
         2: .line 269
            new sun.security.krb5.Realm
            dup
            new sun.security.util.DerValue
            dup
            aload 3 /* encRealm */
            invokespecial sun.security.util.DerValue.<init>:([B)V
            invokespecial sun.security.krb5.Realm.<init>:(Lsun/security/util/DerValue;)V
            astore 4 /* realmObject */
        start local 4 // sun.security.krb5.Realm realmObject
         3: .line 270
            new sun.security.krb5.PrincipalName
            dup
         4: .line 271
            new sun.security.util.DerValue
            dup
            aload 2 /* asn1EncPrincipal */
            invokespecial sun.security.util.DerValue.<init>:([B)V
            aload 4 /* realmObject */
         5: .line 270
            invokespecial sun.security.krb5.PrincipalName.<init>:(Lsun/security/util/DerValue;Lsun/security/krb5/Realm;)V
            astore 5 /* krb5Principal */
        start local 5 // sun.security.krb5.PrincipalName krb5Principal
         6: .line 272
            aload 0 /* this */
            aload 4 /* realmObject */
            invokevirtual sun.security.krb5.Realm.toString:()Ljava/lang/String;
            putfield javax.security.auth.kerberos.KerberosPrincipal.realm:Ljava/lang/String;
         7: .line 273
            aload 0 /* this */
            aload 5 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
            putfield javax.security.auth.kerberos.KerberosPrincipal.fullName:Ljava/lang/String;
         8: .line 274
            aload 0 /* this */
            aload 5 /* krb5Principal */
            invokevirtual sun.security.krb5.PrincipalName.getNameType:()I
            putfield javax.security.auth.kerberos.KerberosPrincipal.nameType:I
        end local 5 // sun.security.krb5.PrincipalName krb5Principal
        end local 4 // sun.security.krb5.Realm realmObject
         9: .line 275
            goto 12
      StackMap locals: javax.security.auth.kerberos.KerberosPrincipal java.io.ObjectInputStream byte[] byte[]
      StackMap stack: java.lang.Exception
        10: astore 4 /* e */
        start local 4 // java.lang.Exception e
        11: .line 276
            new java.io.IOException
            dup
            aload 4 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        12: .line 278
      StackMap locals:
      StackMap stack:
            return
        end local 3 // byte[] encRealm
        end local 2 // byte[] asn1EncPrincipal
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Ljavax/security/auth/kerberos/KerberosPrincipal;
            0   13     1               ois  Ljava/io/ObjectInputStream;
            1   13     2  asn1EncPrincipal  [B
            2   13     3          encRealm  [B
            3    9     4       realmObject  Lsun/security/krb5/Realm;
            6    9     5     krb5Principal  Lsun/security/krb5/PrincipalName;
           11   12     4                 e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     9      10  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      ois   

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
         0: .line 288
            aload 0 /* this */
            getfield javax.security.auth.kerberos.KerberosPrincipal.fullName:Ljava/lang/String;
            areturn
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/security/auth/kerberos/KerberosPrincipal;

  public int getNameType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
         0: .line 299
            aload 0 /* this */
            getfield javax.security.auth.kerberos.KerberosPrincipal.nameType:I
            ireturn
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/security/auth/kerberos/KerberosPrincipal;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.security.auth.kerberos.KerberosPrincipal this
         0: .line 308
            aload 0 /* this */
            invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
            areturn
        end local 0 // javax.security.auth.kerberos.KerberosPrincipal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/security/auth/kerberos/KerberosPrincipal;
}
SourceFile: "KerberosPrincipal.java"