public class org.postgresql.ssl.SingleCertValidatingFactory extends org.postgresql.ssl.WrappedFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.postgresql.ssl.SingleCertValidatingFactory
super_class: org.postgresql.ssl.WrappedFactory
{
private static final java.lang.String FILE_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "file:"
private static final java.lang.String CLASSPATH_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "classpath:"
private static final java.lang.String ENV_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "env:"
private static final java.lang.String SYS_PROP_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "sys:"
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.postgresql.ssl.WrappedFactory.<init>:()V
1: aload 1
ifnull 2
aload 1
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: StackMap locals: org.postgresql.ssl.SingleCertValidatingFactory java.lang.String
StackMap stack:
new java.security.GeneralSecurityException
dup
ldc "The sslfactoryarg property may not be empty."
iconst_0
anewarray java.lang.Object
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 4: aload 1
ldc "file:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
5: aload 1
ldc "file:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 6: new java.io.BufferedInputStream
dup
new java.io.FileInputStream
dup
aload 3
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 2
end local 3 7: goto 38
StackMap locals: java.io.InputStream
StackMap stack:
8: aload 1
ldc "classpath:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
9: aload 1
ldc "classpath:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 10: new java.io.BufferedInputStream
dup
11: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
aload 3
invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
12: invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 2
end local 3 13: goto 38
StackMap locals:
StackMap stack:
14: aload 1
ldc "env:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 23
15: aload 1
ldc "env:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 16: aload 3
invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 17: aload 4
ifnull 18
ldc ""
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
18: StackMap locals: java.lang.String java.lang.String
StackMap stack:
new java.security.GeneralSecurityException
dup
19: ldc "The environment variable containing the server's SSL certificate must not be empty."
iconst_0
anewarray java.lang.Object
20: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
new java.io.ByteArrayInputStream
dup
aload 4
ldc "UTF-8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 2
end local 4 end local 3 22: goto 38
StackMap locals:
StackMap stack:
23: aload 1
ldc "sys:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 32
24: aload 1
ldc "sys:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 25: aload 3
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 26: aload 4
ifnull 27
ldc ""
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 30
27: StackMap locals: java.lang.String java.lang.String
StackMap stack:
new java.security.GeneralSecurityException
dup
28: ldc "The system property containing the server's SSL certificate must not be empty."
iconst_0
anewarray java.lang.Object
29: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
new java.io.ByteArrayInputStream
dup
aload 4
ldc "UTF-8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 2
end local 4 end local 3 31: goto 38
StackMap locals:
StackMap stack:
32: aload 1
ldc "-----BEGIN CERTIFICATE-----"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 35
33: new java.io.ByteArrayInputStream
dup
aload 1
ldc "UTF-8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 2
34: goto 38
35: StackMap locals:
StackMap stack:
new java.security.GeneralSecurityException
dup
36: ldc "The sslfactoryarg property must start with the prefix file:, classpath:, env:, sys:, or -----BEGIN CERTIFICATE-----."
iconst_0
anewarray java.lang.Object
37: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
ldc "TLS"
invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
astore 3
start local 3 39: aload 3
aconst_null
iconst_1
anewarray javax.net.ssl.TrustManager
dup
iconst_0
new org.postgresql.ssl.SingleCertValidatingFactory$SingleCertTrustManager
dup
aload 2
invokespecial org.postgresql.ssl.SingleCertValidatingFactory$SingleCertTrustManager.<init>:(Ljava/io/InputStream;)V
aastore
aconst_null
invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
40: aload 0
aload 3
invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
putfield org.postgresql.ssl.SingleCertValidatingFactory.factory:Ljavax/net/ssl/SSLSocketFactory;
end local 3 41: goto 54
StackMap locals:
StackMap stack: java.lang.RuntimeException
42: astore 3
start local 3 43: aload 3
athrow
end local 3 44: StackMap locals:
StackMap stack: java.lang.Exception
astore 3
start local 3 45: aload 3
instanceof java.security.GeneralSecurityException
ifeq 47
46: aload 3
checkcast java.security.GeneralSecurityException
athrow
47: StackMap locals: java.lang.Exception
StackMap stack:
new java.security.GeneralSecurityException
dup
ldc "An error occurred reading the certificate"
iconst_0
anewarray java.lang.Object
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 3
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 48: StackMap locals: org.postgresql.ssl.SingleCertValidatingFactory java.lang.String java.io.InputStream
StackMap stack: java.lang.Throwable
astore 5
49: aload 2
ifnull 53
50: aload 2
invokevirtual java.io.InputStream.close:()V
51: goto 53
StackMap locals: org.postgresql.ssl.SingleCertValidatingFactory java.lang.String java.io.InputStream top top java.lang.Throwable
StackMap stack: java.lang.Exception
52: pop
53: StackMap locals:
StackMap stack:
aload 5
athrow
54: StackMap locals: org.postgresql.ssl.SingleCertValidatingFactory java.lang.String java.io.InputStream
StackMap stack:
aload 2
ifnull 58
55: aload 2
invokevirtual java.io.InputStream.close:()V
56: goto 58
StackMap locals:
StackMap stack: java.lang.Exception
57: pop
58: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lorg/postgresql/ssl/SingleCertValidatingFactory;
0 59 1 sslFactoryArg Ljava/lang/String;
4 59 2 in Ljava/io/InputStream;
6 7 3 path Ljava/lang/String;
10 13 3 path Ljava/lang/String;
16 22 3 name Ljava/lang/String;
17 22 4 cert Ljava/lang/String;
25 31 3 name Ljava/lang/String;
26 31 4 cert Ljava/lang/String;
39 41 3 ctx Ljavax/net/ssl/SSLContext;
43 44 3 e Ljava/lang/RuntimeException;
45 48 3 e Ljava/lang/Exception;
Exception table:
from to target type
4 41 42 Class java.lang.RuntimeException
4 41 44 Class java.lang.Exception
4 48 48 any
50 51 52 Class java.lang.Exception
55 56 57 Class java.lang.Exception
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
sslFactoryArg
}
SourceFile: "SingleCertValidatingFactory.java"
NestMembers:
org.postgresql.ssl.SingleCertValidatingFactory$SingleCertTrustManager
InnerClasses:
public SingleCertTrustManager = org.postgresql.ssl.SingleCertValidatingFactory$SingleCertTrustManager of org.postgresql.ssl.SingleCertValidatingFactory