public class org.postgresql.gss.MakeGSS
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.postgresql.gss.MakeGSS
  super_class: java.lang.Object
{
  private static final java.util.logging.Logger LOGGER;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 28
            ldc Lorg/postgresql/gss/MakeGSS;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic org.postgresql.gss.MakeGSS.LOGGER:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.gss.MakeGSS this
         0: .line 26
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.postgresql.gss.MakeGSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/postgresql/gss/MakeGSS;

  public static void authenticate(org.postgresql.core.PGStream, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Lorg/postgresql/core/PGStream;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=13, args_size=8
        start local 0 // org.postgresql.core.PGStream pgStream
        start local 1 // java.lang.String host
        start local 2 // java.lang.String user
        start local 3 // java.lang.String password
        start local 4 // java.lang.String jaasApplicationName
        start local 5 // java.lang.String kerberosServerName
        start local 6 // boolean useSpnego
        start local 7 // boolean jaasLogin
         0: .line 33
            getstatic org.postgresql.gss.MakeGSS.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            ldc " <=BE AuthenticationReqGSS"
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 35
            aload 4 /* jaasApplicationName */
            ifnonnull 3
         2: .line 36
            ldc "pgjdbc"
            astore 4 /* jaasApplicationName */
         3: .line 38
      StackMap locals:
      StackMap stack:
            aload 5 /* kerberosServerName */
            ifnonnull 5
         4: .line 39
            ldc "postgres"
            astore 5 /* kerberosServerName */
         5: .line 44
      StackMap locals:
      StackMap stack:
            iload 7 /* jaasLogin */
            istore 9 /* performAuthentication */
        start local 9 // boolean performAuthentication
         6: .line 45
            aconst_null
            astore 10 /* gssCredential */
        start local 10 // org.ietf.jgss.GSSCredential gssCredential
         7: .line 46
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            invokestatic javax.security.auth.Subject.getSubject:(Ljava/security/AccessControlContext;)Ljavax/security/auth/Subject;
            astore 11 /* sub */
        start local 11 // javax.security.auth.Subject sub
         8: .line 47
            aload 11 /* sub */
            ifnull 13
         9: .line 48
            aload 11 /* sub */
            ldc Lorg/ietf/jgss/GSSCredential;
            invokevirtual javax.security.auth.Subject.getPrivateCredentials:(Ljava/lang/Class;)Ljava/util/Set;
            astore 12 /* gssCreds */
        start local 12 // java.util.Set gssCreds
        10: .line 49
            aload 12 /* gssCreds */
            ifnull 13
            aload 12 /* gssCreds */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 13
        11: .line 50
            aload 12 /* gssCreds */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.ietf.jgss.GSSCredential
            astore 10 /* gssCredential */
        12: .line 51
            iconst_0
            istore 9 /* performAuthentication */
        end local 12 // java.util.Set gssCreds
        13: .line 54
      StackMap locals: org.postgresql.core.PGStream java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String int int top int org.ietf.jgss.GSSCredential javax.security.auth.Subject
      StackMap stack:
            iload 9 /* performAuthentication */
            ifeq 18
        14: .line 56
            new javax.security.auth.login.LoginContext
            dup
            aload 4 /* jaasApplicationName */
            new org.postgresql.gss.GSSCallbackHandler
            dup
            aload 2 /* user */
            aload 3 /* password */
            invokespecial org.postgresql.gss.GSSCallbackHandler.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokespecial javax.security.auth.login.LoginContext.<init>:(Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;)V
        15: .line 55
            astore 12 /* lc */
        start local 12 // javax.security.auth.login.LoginContext lc
        16: .line 57
            aload 12 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.login:()V
        17: .line 58
            aload 12 /* lc */
            invokevirtual javax.security.auth.login.LoginContext.getSubject:()Ljavax/security/auth/Subject;
            astore 11 /* sub */
        end local 12 // javax.security.auth.login.LoginContext lc
        18: .line 60
      StackMap locals:
      StackMap stack:
            new org.postgresql.gss.GssAction
            dup
            aload 0 /* pgStream */
            aload 10 /* gssCredential */
            aload 1 /* host */
            aload 2 /* user */
        19: .line 61
            aload 5 /* kerberosServerName */
            iload 6 /* useSpnego */
        20: .line 60
            invokespecial org.postgresql.gss.GssAction.<init>:(Lorg/postgresql/core/PGStream;Lorg/ietf/jgss/GSSCredential;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
            astore 12 /* action */
        start local 12 // java.security.PrivilegedAction action
        21: .line 63
            aload 11 /* sub */
            aload 12 /* action */
            invokestatic javax.security.auth.Subject.doAs:(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Exception
            astore 8 /* result */
        end local 12 // java.security.PrivilegedAction action
        end local 11 // javax.security.auth.Subject sub
        end local 10 // org.ietf.jgss.GSSCredential gssCredential
        end local 9 // boolean performAuthentication
        start local 8 // java.lang.Exception result
        22: .line 64
            goto 25
        end local 8 // java.lang.Exception result
      StackMap locals: org.postgresql.core.PGStream java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String int int
      StackMap stack: java.lang.Exception
        23: astore 9 /* e */
        start local 9 // java.lang.Exception e
        24: .line 65
            new org.postgresql.util.PSQLException
            dup
            ldc "GSS Authentication failed"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 9 /* e */
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.Exception e
        start local 8 // java.lang.Exception result
        25: .line 68
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 8 /* result */
            instanceof java.io.IOException
            ifeq 27
        26: .line 69
            aload 8 /* result */
            checkcast java.io.IOException
            athrow
        27: .line 70
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            instanceof java.sql.SQLException
            ifeq 29
        28: .line 71
            aload 8 /* result */
            checkcast java.sql.SQLException
            athrow
        29: .line 72
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            ifnull 33
        30: .line 73
            new org.postgresql.util.PSQLException
            dup
            ldc "GSS Authentication failed"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
        31: .line 74
            aload 8 /* result */
        32: .line 73
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        33: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.Exception result
        end local 7 // boolean jaasLogin
        end local 6 // boolean useSpnego
        end local 5 // java.lang.String kerberosServerName
        end local 4 // java.lang.String jaasApplicationName
        end local 3 // java.lang.String password
        end local 2 // java.lang.String user
        end local 1 // java.lang.String host
        end local 0 // org.postgresql.core.PGStream pgStream
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   34     0               pgStream  Lorg/postgresql/core/PGStream;
            0   34     1                   host  Ljava/lang/String;
            0   34     2                   user  Ljava/lang/String;
            0   34     3               password  Ljava/lang/String;
            0   34     4    jaasApplicationName  Ljava/lang/String;
            0   34     5     kerberosServerName  Ljava/lang/String;
            0   34     6              useSpnego  Z
            0   34     7              jaasLogin  Z
           22   23     8                 result  Ljava/lang/Exception;
           25   34     8                 result  Ljava/lang/Exception;
            6   22     9  performAuthentication  Z
            7   22    10          gssCredential  Lorg/ietf/jgss/GSSCredential;
            8   22    11                    sub  Ljavax/security/auth/Subject;
           10   13    12               gssCreds  Ljava/util/Set<Lorg/ietf/jgss/GSSCredential;>;
           16   18    12                     lc  Ljavax/security/auth/login/LoginContext;
           21   22    12                 action  Ljava/security/PrivilegedAction<Ljava/lang/Exception;>;
           24   25     9                      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5    22      23  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException, java.sql.SQLException
    MethodParameters:
                     Name  Flags
      pgStream             
      host                 
      user                 
      password             
      jaasApplicationName  
      kerberosServerName   
      useSpnego            
      jaasLogin            
}
SourceFile: "MakeGSS.java"