public class com.sun.security.auth.module.UnixLoginModule implements javax.security.auth.spi.LoginModule
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.security.auth.module.UnixLoginModule
  super_class: java.lang.Object
{
  private javax.security.auth.Subject subject;
    descriptor: Ljavax/security/auth/Subject;
    flags: (0x0002) ACC_PRIVATE

  private javax.security.auth.callback.CallbackHandler callbackHandler;
    descriptor: Ljavax/security/auth/callback/CallbackHandler;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, ?> sharedState;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;*>;

  private java.util.Map<java.lang.String, ?> options;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;*>;

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

  private com.sun.security.auth.module.UnixSystem ss;
    descriptor: Lcom/sun/security/auth/module/UnixSystem;
    flags: (0x0002) ACC_PRIVATE

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

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

  private com.sun.security.auth.UnixPrincipal userPrincipal;
    descriptor: Lcom/sun/security/auth/UnixPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.UnixNumericUserPrincipal UIDPrincipal;
    descriptor: Lcom/sun/security/auth/UnixNumericUserPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.UnixNumericGroupPrincipal GIDPrincipal;
    descriptor: Lcom/sun/security/auth/UnixNumericGroupPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private java.util.LinkedList<com.sun.security.auth.UnixNumericGroupPrincipal> supplementaryGroups;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/LinkedList<Lcom/sun/security/auth/UnixNumericGroupPrincipal;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.UnixLoginModule this
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.UnixLoginModule.debug:Z
         2: .line 65
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
         3: .line 66
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.UnixLoginModule.commitSucceeded:Z
         4: .line 72
            aload 0 /* this */
         5: .line 73
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
         6: .line 50
            return
        end local 0 // com.sun.security.auth.module.UnixLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/security/auth/module/UnixLoginModule;

  public void initialize(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, java.util.Map<java.lang.String, ?>, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.sun.security.auth.module.UnixLoginModule this
        start local 1 // javax.security.auth.Subject subject
        start local 2 // javax.security.auth.callback.CallbackHandler callbackHandler
        start local 3 // java.util.Map sharedState
        start local 4 // java.util.Map options
         0: .line 94
            aload 0 /* this */
            aload 1 /* subject */
            putfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
         1: .line 95
            aload 0 /* this */
            aload 2 /* callbackHandler */
            putfield com.sun.security.auth.module.UnixLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
         2: .line 96
            aload 0 /* this */
            aload 3 /* sharedState */
            putfield com.sun.security.auth.module.UnixLoginModule.sharedState:Ljava/util/Map;
         3: .line 97
            aload 0 /* this */
            aload 4 /* options */
            putfield com.sun.security.auth.module.UnixLoginModule.options:Ljava/util/Map;
         4: .line 100
            aload 0 /* this */
            ldc "true"
            aload 4 /* options */
            ldc "debug"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            putfield com.sun.security.auth.module.UnixLoginModule.debug:Z
         5: .line 101
            return
        end local 4 // java.util.Map options
        end local 3 // java.util.Map sharedState
        end local 2 // javax.security.auth.callback.CallbackHandler callbackHandler
        end local 1 // javax.security.auth.Subject subject
        end local 0 // com.sun.security.auth.module.UnixLoginModule this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/sun/security/auth/module/UnixLoginModule;
            0    6     1          subject  Ljavax/security/auth/Subject;
            0    6     2  callbackHandler  Ljavax/security/auth/callback/CallbackHandler;
            0    6     3      sharedState  Ljava/util/Map<Ljava/lang/String;*>;
            0    6     4          options  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map<Ljava/lang/String;*>;Ljava/util/Map<Ljava/lang/String;*>;)V
    MethodParameters:
                 Name  Flags
      subject          
      callbackHandler  
      sharedState      
      options          

  public boolean login();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.sun.security.auth.module.UnixLoginModule this
         0: .line 118
            aconst_null
            astore 1 /* unixGroups */
        start local 1 // long[] unixGroups
         1: .line 121
            aload 0 /* this */
            new com.sun.security.auth.module.UnixSystem
            dup
            invokespecial com.sun.security.auth.module.UnixSystem.<init>:()V
            putfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
         2: .line 122
            goto 10
      StackMap locals: com.sun.security.auth.module.UnixLoginModule long[]
      StackMap stack: java.lang.UnsatisfiedLinkError
         3: pop
         4: .line 123
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
         5: .line 124
            new javax.security.auth.login.FailedLoginException
            dup
         6: .line 125
            new java.lang.StringBuilder
            dup
            ldc "Failed in attempt to import the underlying system identity information on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 127
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 125
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 124
            invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.security.auth.UnixPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getUsername:()Ljava/lang/String;
            invokespecial com.sun.security.auth.UnixPrincipal.<init>:(Ljava/lang/String;)V
            putfield com.sun.security.auth.module.UnixLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
        11: .line 130
            aload 0 /* this */
            new com.sun.security.auth.UnixNumericUserPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getUid:()J
            invokespecial com.sun.security.auth.UnixNumericUserPrincipal.<init>:(J)V
            putfield com.sun.security.auth.module.UnixLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
        12: .line 131
            aload 0 /* this */
            new com.sun.security.auth.UnixNumericGroupPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getGid:()J
            iconst_1
            invokespecial com.sun.security.auth.UnixNumericGroupPrincipal.<init>:(JZ)V
            putfield com.sun.security.auth.module.UnixLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
        13: .line 132
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getGroups:()[J
            ifnull 25
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getGroups:()[J
            arraylength
            ifle 25
        14: .line 133
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getGroups:()[J
            astore 1 /* unixGroups */
        15: .line 134
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        16: goto 24
        17: .line 136
      StackMap locals: int
      StackMap stack:
            new com.sun.security.auth.UnixNumericGroupPrincipal
            dup
        18: .line 137
            aload 1 /* unixGroups */
            iload 2 /* i */
            laload
            iconst_0
        19: .line 136
            invokespecial com.sun.security.auth.UnixNumericGroupPrincipal.<init>:(JZ)V
        20: .line 135
            astore 3 /* ngp */
        start local 3 // com.sun.security.auth.UnixNumericGroupPrincipal ngp
        21: .line 138
            aload 3 /* ngp */
            invokevirtual com.sun.security.auth.UnixNumericGroupPrincipal.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
            invokevirtual com.sun.security.auth.UnixNumericGroupPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 139
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
            aload 3 /* ngp */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // com.sun.security.auth.UnixNumericGroupPrincipal ngp
        23: .line 134
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 2 /* i */
            aload 1 /* unixGroups */
            arraylength
            if_icmplt 17
        end local 2 // int i
        25: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.debug:Z
            ifeq 35
        26: .line 143
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[UnixLoginModule]: succeeded importing info: "
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        27: .line 145
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tuid = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getUid:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        28: .line 146
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tgid = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getGid:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        29: .line 147
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
            invokevirtual com.sun.security.auth.module.UnixSystem.getGroups:()[J
            astore 1 /* unixGroups */
        30: .line 148
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        31: goto 34
        32: .line 149
      StackMap locals: int
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tsupp gid = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* unixGroups */
            iload 2 /* i */
            laload
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 148
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 2 /* i */
            aload 1 /* unixGroups */
            arraylength
            if_icmplt 32
        end local 2 // int i
        35: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
        36: .line 153
            iconst_1
            ireturn
        end local 1 // long[] unixGroups
        end local 0 // com.sun.security.auth.module.UnixLoginModule this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   37     0        this  Lcom/sun/security/auth/module/UnixLoginModule;
            1   37     1  unixGroups  [J
           16   25     2           i  I
           21   23     3         ngp  Lcom/sun/security/auth/UnixNumericGroupPrincipal;
           31   35     2           i  I
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.UnsatisfiedLinkError
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean commit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.security.auth.module.UnixLoginModule this
         0: .line 178
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
            ifne 4
         1: .line 179
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.debug:Z
            ifeq 3
         2: .line 180
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[UnixLoginModule]: did not add any Principals to Subject because own authentication failed."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 184
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.isReadOnly:()Z
            ifeq 8
         5: .line 187
            new javax.security.auth.login.LoginException
            dup
         6: .line 188
            ldc "commit Failed: Subject is Readonly"
         7: .line 187
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 191
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 193
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 14
        13: .line 195
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 196
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        15: goto 22
        16: .line 197
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
        17: .line 198
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
            iload 1 /* i */
            invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
        18: .line 197
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
        19: .line 198
            ifne 21
        20: .line 199
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
            iload 1 /* i */
            invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
            checkcast java.security.Principal
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 196
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 1 /* i */
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            if_icmplt 16
        end local 1 // int i
        23: .line 202
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.debug:Z
            ifeq 28
        24: .line 203
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[UnixLoginModule]: added UnixPrincipal,"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 205
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t\t\tUnixNumericUserPrincipal,"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        26: .line 206
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t\t\tUnixNumericGroupPrincipal(s),"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        27: .line 207
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t\t to Subject"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        28: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.UnixLoginModule.commitSucceeded:Z
        29: .line 211
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.UnixLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   30     0  this  Lcom/sun/security/auth/module/UnixLoginModule;
           15   23     1     i  I
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean abort();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.UnixLoginModule this
         0: .line 233
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.debug:Z
            ifeq 2
         1: .line 234
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[UnixLoginModule]: aborted authentication attempt"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
            ifne 4
         3: .line 239
            iconst_0
            ireturn
         4: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
            ifeq 12
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.commitSucceeded:Z
            ifne 12
         5: .line 243
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
         6: .line 244
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
         7: .line 245
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
         8: .line 246
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
         9: .line 247
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
        10: .line 248
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
        11: .line 249
            goto 13
        12: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.UnixLoginModule.logout:()Z
            pop
        13: .line 254
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.UnixLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/sun/security/auth/module/UnixLoginModule;
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean logout();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.security.auth.module.UnixLoginModule this
         0: .line 270
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.isReadOnly:()Z
            ifeq 4
         1: .line 271
            new javax.security.auth.login.LoginException
            dup
         2: .line 272
            ldc "logout Failed: Subject is Readonly"
         3: .line 271
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         5: .line 276
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         6: .line 277
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         7: .line 278
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         8: goto 11
         9: .line 279
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
            iload 1 /* i */
            invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        10: .line 278
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 1 /* i */
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            if_icmplt 9
        end local 1 // int i
        12: .line 283
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.ss:Lcom/sun/security/auth/module/UnixSystem;
        13: .line 284
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.UnixLoginModule.succeeded:Z
        14: .line 285
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.UnixLoginModule.commitSucceeded:Z
        15: .line 286
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
        16: .line 287
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
        17: .line 288
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.UnixLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
        18: .line 289
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield com.sun.security.auth.module.UnixLoginModule.supplementaryGroups:Ljava/util/LinkedList;
        19: .line 291
            aload 0 /* this */
            getfield com.sun.security.auth.module.UnixLoginModule.debug:Z
            ifeq 21
        20: .line 292
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[UnixLoginModule]: logged out Subject"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 295
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.UnixLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lcom/sun/security/auth/module/UnixLoginModule;
            8   12     1     i  I
    Exceptions:
      throws javax.security.auth.login.LoginException
}
SourceFile: "UnixLoginModule.java"