class org.postgresql.gss.GssAction implements java.security.PrivilegedAction<java.lang.Exception>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.postgresql.gss.GssAction
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
private final org.postgresql.core.PGStream pgStream;
descriptor: Lorg/postgresql/core/PGStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String host;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String user;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String kerberosServerName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean useSpnego;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.ietf.jgss.GSSCredential clientCredentials;
descriptor: Lorg/ietf/jgss/GSSCredential;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/postgresql/gss/GssAction;
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.GssAction.LOGGER:Ljava/util/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.postgresql.core.PGStream, org.ietf.jgss.GSSCredential, java.lang.String, java.lang.String, java.lang.String, boolean);
descriptor: (Lorg/postgresql/core/PGStream;Lorg/ietf/jgss/GSSCredential;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
flags: (0x0000)
Code:
stack=2, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
2: aload 0
aload 2
putfield org.postgresql.gss.GssAction.clientCredentials:Lorg/ietf/jgss/GSSCredential;
3: aload 0
aload 3
putfield org.postgresql.gss.GssAction.host:Ljava/lang/String;
4: aload 0
aload 4
putfield org.postgresql.gss.GssAction.user:Ljava/lang/String;
5: aload 0
aload 5
putfield org.postgresql.gss.GssAction.kerberosServerName:Ljava/lang/String;
6: aload 0
iload 6
putfield org.postgresql.gss.GssAction.useSpnego:Z
7: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/postgresql/gss/GssAction;
0 8 1 pgStream Lorg/postgresql/core/PGStream;
0 8 2 clientCredentials Lorg/ietf/jgss/GSSCredential;
0 8 3 host Ljava/lang/String;
0 8 4 user Ljava/lang/String;
0 8 5 kerberosServerName Ljava/lang/String;
0 8 6 useSpnego Z
MethodParameters:
Name Flags
pgStream
clientCredentials
host
user
kerberosServerName
useSpnego
private static boolean hasSpnegoSupport(org.ietf.jgss.GSSManager);
descriptor: (Lorg/ietf/jgss/GSSManager;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: new org.ietf.jgss.Oid
dup
ldc "1.3.6.1.5.5.2"
invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 0
invokevirtual org.ietf.jgss.GSSManager.getMechs:()[Lorg/ietf/jgss/Oid;
astore 2
start local 2 2: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: org.ietf.jgss.GSSManager org.ietf.jgss.Oid org.ietf.jgss.Oid[] top int int org.ietf.jgss.Oid[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
aload 1
invokevirtual org.ietf.jgss.Oid.equals:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
ireturn
end local 3 6: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 3
8: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 manager Lorg/ietf/jgss/GSSManager;
1 9 1 spnego Lorg/ietf/jgss/Oid;
2 9 2 mechs [Lorg/ietf/jgss/Oid;
4 6 3 mech Lorg/ietf/jgss/Oid;
Exceptions:
throws org.ietf.jgss.GSSException
MethodParameters:
Name Flags
manager
public java.lang.Exception run();
descriptor: ()Ljava/lang/Exception;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=1
start local 0 0: invokestatic org.ietf.jgss.GSSManager.getInstance:()Lorg/ietf/jgss/GSSManager;
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: iconst_1
anewarray org.ietf.jgss.Oid
astore 3
start local 3 3: aload 0
getfield org.postgresql.gss.GssAction.clientCredentials:Lorg/ietf/jgss/GSSCredential;
ifnonnull 13
4: aload 0
getfield org.postgresql.gss.GssAction.useSpnego:Z
ifeq 7
aload 1
invokestatic org.postgresql.gss.GssAction.hasSpnegoSupport:(Lorg/ietf/jgss/GSSManager;)Z
ifeq 7
5: aload 3
iconst_0
new org.ietf.jgss.Oid
dup
ldc "1.3.6.1.5.5.2"
invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
aastore
6: goto 8
7: StackMap locals: org.ietf.jgss.GSSManager org.ietf.jgss.GSSCredential org.ietf.jgss.Oid[]
StackMap stack:
aload 3
iconst_0
new org.ietf.jgss.Oid
dup
ldc "1.2.840.113554.1.2.2"
invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
aastore
8: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.postgresql.gss.GssAction.user:Ljava/lang/String;
getstatic org.ietf.jgss.GSSName.NT_USER_NAME:Lorg/ietf/jgss/Oid;
invokevirtual org.ietf.jgss.GSSManager.createName:(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;
astore 4
start local 4 9: aload 1
aload 4
sipush 28800
aload 3
10: iconst_1
11: invokevirtual org.ietf.jgss.GSSManager.createCredential:(Lorg/ietf/jgss/GSSName;I[Lorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;
astore 2
end local 4 12: goto 15
13: StackMap locals:
StackMap stack:
aload 3
iconst_0
new org.ietf.jgss.Oid
dup
ldc "1.2.840.113554.1.2.2"
invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
aastore
14: aload 0
getfield org.postgresql.gss.GssAction.clientCredentials:Lorg/ietf/jgss/GSSCredential;
astore 2
15: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
aload 0
getfield org.postgresql.gss.GssAction.kerberosServerName:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "@"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.postgresql.gss.GssAction.host:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic org.ietf.jgss.GSSName.NT_HOSTBASED_SERVICE:Lorg/ietf/jgss/Oid;
invokevirtual org.ietf.jgss.GSSManager.createName:(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;
16: astore 4
start local 4 17: aload 1
aload 4
aload 3
iconst_0
aaload
aload 2
18: iconst_0
19: invokevirtual org.ietf.jgss.GSSManager.createContext:(Lorg/ietf/jgss/GSSName;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/GSSCredential;I)Lorg/ietf/jgss/GSSContext;
astore 5
start local 5 20: aload 5
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestMutualAuth:(Z)V
21: iconst_0
newarray 8
astore 6
start local 6 22: aconst_null
astore 7
start local 7 23: iconst_0
istore 8
start local 8 24: goto 52
25: StackMap locals: org.postgresql.gss.GssAction org.ietf.jgss.GSSManager org.ietf.jgss.GSSCredential org.ietf.jgss.Oid[] org.ietf.jgss.GSSName org.ietf.jgss.GSSContext byte[] byte[] int
StackMap stack:
aload 5
aload 6
iconst_0
aload 6
arraylength
invokeinterface org.ietf.jgss.GSSContext.initSecContext:([BII)[B
astore 7
26: aload 7
ifnull 32
27: getstatic org.postgresql.gss.GssAction.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
ldc " FE=> Password(GSS Authentication Token)"
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
28: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
bipush 112
invokevirtual org.postgresql.core.PGStream.sendChar:(I)V
29: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
iconst_4
aload 7
arraylength
iadd
invokevirtual org.postgresql.core.PGStream.sendInteger4:(I)V
30: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
aload 7
invokevirtual org.postgresql.core.PGStream.send:([B)V
31: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
invokevirtual org.postgresql.core.PGStream.flush:()V
32: StackMap locals:
StackMap stack:
aload 5
invokeinterface org.ietf.jgss.GSSContext.isEstablished:()Z
ifne 51
33: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
invokevirtual org.postgresql.core.PGStream.receiveChar:()I
istore 9
start local 9 34: iload 9
lookupswitch { // 2
69: 35
82: 41
default: 46
}
35: StackMap locals: int
StackMap stack:
aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
invokevirtual org.postgresql.core.PGStream.receiveInteger4:()I
istore 10
start local 10 36: new org.postgresql.util.ServerErrorMessage
dup
aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
iload 10
iconst_4
isub
invokevirtual org.postgresql.core.PGStream.receiveErrorString:(I)Lorg/postgresql/core/EncodingPredictor$DecodeResult;
invokespecial org.postgresql.util.ServerErrorMessage.<init>:(Lorg/postgresql/core/EncodingPredictor$DecodeResult;)V
37: astore 11
start local 11 38: getstatic org.postgresql.gss.GssAction.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
ldc " <=BE ErrorMessage({0})"
aload 11
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
39: new org.postgresql.util.PSQLException
dup
aload 11
invokespecial org.postgresql.util.PSQLException.<init>:(Lorg/postgresql/util/ServerErrorMessage;)V
40: areturn
end local 11 end local 10 41: StackMap locals:
StackMap stack:
getstatic org.postgresql.gss.GssAction.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
ldc " <=BE AuthenticationGSSContinue"
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
42: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
invokevirtual org.postgresql.core.PGStream.receiveInteger4:()I
istore 12
start local 12 43: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
invokevirtual org.postgresql.core.PGStream.receiveInteger4:()I
pop
44: aload 0
getfield org.postgresql.gss.GssAction.pgStream:Lorg/postgresql/core/PGStream;
iload 12
bipush 8
isub
invokevirtual org.postgresql.core.PGStream.receive:(I)[B
astore 6
45: goto 52
end local 12 46: StackMap locals:
StackMap stack:
new org.postgresql.util.PSQLException
dup
ldc "Protocol error. Session setup failed."
iconst_0
anewarray java.lang.Object
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
47: getstatic org.postgresql.util.PSQLState.CONNECTION_UNABLE_TO_CONNECT:Lorg/postgresql/util/PSQLState;
48: invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;)V
49: areturn
end local 9 50: StackMap locals:
StackMap stack:
goto 52
51: StackMap locals:
StackMap stack:
iconst_1
istore 8
52: StackMap locals:
StackMap stack:
iload 8
ifeq 25
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 53: goto 60
StackMap locals: org.postgresql.gss.GssAction
StackMap stack: java.io.IOException
54: astore 1
start local 1 55: aload 1
areturn
end local 1 56: StackMap locals:
StackMap stack: org.ietf.jgss.GSSException
astore 1
start local 1 57: 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;
58: aload 1
59: invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
areturn
end local 1 60: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Lorg/postgresql/gss/GssAction;
1 53 1 manager Lorg/ietf/jgss/GSSManager;
2 53 2 clientCreds Lorg/ietf/jgss/GSSCredential;
3 53 3 desiredMechs [Lorg/ietf/jgss/Oid;
9 12 4 clientName Lorg/ietf/jgss/GSSName;
17 53 4 serverName Lorg/ietf/jgss/GSSName;
20 53 5 secContext Lorg/ietf/jgss/GSSContext;
22 53 6 inToken [B
23 53 7 outToken [B
24 53 8 established Z
34 50 9 response I
36 41 10 elen I
38 41 11 errorMsg Lorg/postgresql/util/ServerErrorMessage;
43 46 12 len I
55 56 1 e Ljava/io/IOException;
57 60 1 gsse Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
0 40 54 Class java.io.IOException
41 49 54 Class java.io.IOException
50 53 54 Class java.io.IOException
0 40 56 Class org.ietf.jgss.GSSException
41 49 56 Class org.ietf.jgss.GSSException
50 53 56 Class org.ietf.jgss.GSSException
public java.lang.Object run();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.postgresql.gss.GssAction.run:()Ljava/lang/Exception;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/security/PrivilegedAction<Ljava/lang/Exception;>;
SourceFile: "GssAction.java"
InnerClasses:
public DecodeResult = org.postgresql.core.EncodingPredictor$DecodeResult of org.postgresql.core.EncodingPredictor