class io.vertx.ext.mongo.impl.config.SSLSettingsParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.vertx.ext.mongo.impl.config.SSLSettingsParser
super_class: java.lang.Object
{
private static final io.vertx.core.logging.Logger log;
descriptor: Lio/vertx/core/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.mongodb.ConnectionString connectionString;
descriptor: Lcom/mongodb/ConnectionString;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.vertx.core.json.JsonObject config;
descriptor: Lio/vertx/core/json/JsonObject;
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 Lio/vertx/ext/mongo/impl/config/SSLSettingsParser;
invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
putstatic io.vertx.ext.mongo.impl.config.SSLSettingsParser.log:Lio/vertx/core/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.mongodb.ConnectionString, io.vertx.core.json.JsonObject);
descriptor: (Lcom/mongodb/ConnectionString;Lio/vertx/core/json/JsonObject;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.connectionString:Lcom/mongodb/ConnectionString;
2: aload 0
aload 2
putfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.config:Lio/vertx/core/json/JsonObject;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/ext/mongo/impl/config/SSLSettingsParser;
0 4 1 connectionString Lcom/mongodb/ConnectionString;
0 4 2 config Lio/vertx/core/json/JsonObject;
MethodParameters:
Name Flags
connectionString
config
public com.mongodb.connection.SslSettings settings();
descriptor: ()Lcom/mongodb/connection/SslSettings;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual io.vertx.ext.mongo.impl.config.SSLSettingsParser.fromConnectionString:()Ljava/util/Optional;
aload 0
invokedynamic get(Lio/vertx/ext/mongo/impl/config/SSLSettingsParser;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
io/vertx/ext/mongo/impl/config/SSLSettingsParser.fromConfiguration()Lcom/mongodb/connection/SslSettings$Builder; (7)
()Lcom/mongodb/connection/SslSettings$Builder;
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast com.mongodb.connection.SslSettings$Builder
astore 1
start local 1 1: aload 0
getfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.config:Lio/vertx/core/json/JsonObject;
ldc "trustAll"
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual io.vertx.core.json.JsonObject.getBoolean:(Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 8
2: getstatic io.vertx.ext.mongo.impl.config.SSLSettingsParser.log:Lio/vertx/core/logging/Logger;
ldc "Mongo client has been set to trust ALL certificates, this can open you up to security issues. Make sure you know the risks."
invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
3: ldc "TLS"
invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
astore 3
start local 3 4: aload 3
aconst_null
iconst_1
anewarray javax.net.ssl.TrustManager
dup
iconst_0
getstatic io.vertx.core.net.impl.TrustAllTrustManager.INSTANCE:Lio/vertx/core/net/impl/TrustAllTrustManager;
aastore
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
5: aload 1
aload 3
invokevirtual com.mongodb.connection.SslSettings$Builder.context:(Ljavax/net/ssl/SSLContext;)Lcom/mongodb/connection/SslSettings$Builder;
pop
end local 3 6: goto 8
StackMap locals: io.vertx.ext.mongo.impl.config.SSLSettingsParser com.mongodb.connection.SslSettings$Builder
StackMap stack: java.security.GeneralSecurityException
7: pop
8: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.config:Lio/vertx/core/json/JsonObject;
ldc "caPath"
invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
ifeq 19
9: aload 0
getfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.config:Lio/vertx/core/json/JsonObject;
ldc "caPath"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 10: aload 3
invokestatic io.vertx.ext.mongo.impl.config.SSLSettingsParser.buildTrustManagerFactory:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
astore 4
start local 4 11: ldc "TLS"
invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
astore 5
start local 5 12: aload 5
aconst_null
aload 4
invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
13: aload 1
aload 5
invokevirtual com.mongodb.connection.SslSettings$Builder.context:(Ljavax/net/ssl/SSLContext;)Lcom/mongodb/connection/SslSettings$Builder;
pop
end local 5 end local 4 14: goto 19
StackMap locals: io.vertx.ext.mongo.impl.config.SSLSettingsParser com.mongodb.connection.SslSettings$Builder top java.lang.String
StackMap stack: java.io.FileNotFoundException
15: astore 4
start local 4 16: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid caPath "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 17: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 18: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unable to load certificate from caPath '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 19: StackMap locals: io.vertx.ext.mongo.impl.config.SSLSettingsParser com.mongodb.connection.SslSettings$Builder
StackMap stack:
aload 1
invokevirtual com.mongodb.connection.SslSettings$Builder.build:()Lcom/mongodb/connection/SslSettings;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/vertx/ext/mongo/impl/config/SSLSettingsParser;
1 20 1 builder Lcom/mongodb/connection/SslSettings$Builder;
4 6 3 context Ljavax/net/ssl/SSLContext;
10 19 3 caPath Ljava/lang/String;
11 14 4 tmf Ljavax/net/ssl/TrustManagerFactory;
12 14 5 context Ljavax/net/ssl/SSLContext;
16 17 4 e Ljava/io/FileNotFoundException;
18 19 4 e Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.security.NoSuchAlgorithmException
3 6 7 Class java.security.KeyManagementException
10 14 15 Class java.io.FileNotFoundException
10 14 17 Class java.security.NoSuchAlgorithmException
10 14 17 Class java.security.cert.CertificateException
10 14 17 Class java.security.KeyStoreException
10 14 17 Class java.io.IOException
10 14 17 Class java.security.KeyManagementException
private java.util.Optional<com.mongodb.connection.SslSettings$Builder> fromConnectionString();
descriptor: ()Ljava/util/Optional;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.connectionString:Lcom/mongodb/ConnectionString;
invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
io/vertx/ext/mongo/impl/config/SSLSettingsParser.lambda$1(Lcom/mongodb/ConnectionString;)Lcom/mongodb/connection/SslSettings$Builder; (6)
(Lcom/mongodb/ConnectionString;)Lcom/mongodb/connection/SslSettings$Builder;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/mongo/impl/config/SSLSettingsParser;
Signature: ()Ljava/util/Optional<Lcom/mongodb/connection/SslSettings$Builder;>;
private com.mongodb.connection.SslSettings$Builder fromConfiguration();
descriptor: ()Lcom/mongodb/connection/SslSettings$Builder;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: invokestatic com.mongodb.connection.SslSettings.builder:()Lcom/mongodb/connection/SslSettings$Builder;
1: aload 0
getfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.config:Lio/vertx/core/json/JsonObject;
ldc "ssl"
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual io.vertx.core.json.JsonObject.getBoolean:(Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokevirtual com.mongodb.connection.SslSettings$Builder.enabled:(Z)Lcom/mongodb/connection/SslSettings$Builder;
2: aload 0
getfield io.vertx.ext.mongo.impl.config.SSLSettingsParser.config:Lio/vertx/core/json/JsonObject;
ldc "sslInvalidHostNameAllowed"
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual io.vertx.core.json.JsonObject.getBoolean:(Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokevirtual com.mongodb.connection.SslSettings$Builder.invalidHostNameAllowed:(Z)Lcom/mongodb/connection/SslSettings$Builder;
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/ext/mongo/impl/config/SSLSettingsParser;
private static javax.net.ssl.TrustManagerFactory buildTrustManagerFactory(java.lang.String);
descriptor: (Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 1
start local 1 1: new java.io.FileInputStream
dup
aload 0
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 2
start local 2 2: aload 1
aload 2
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
astore 3
start local 3 3: invokestatic java.security.KeyStore.getDefaultType:()Ljava/lang/String;
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
astore 4
start local 4 4: aload 4
aconst_null
aconst_null
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
5: aload 4
ldc "1"
aload 3
invokevirtual java.security.KeyStore.setCertificateEntry:(Ljava/lang/String;Ljava/security/cert/Certificate;)V
6: invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
astore 5
start local 5 7: aload 5
aload 4
invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
8: aload 5
areturn
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 9 0 caPath Ljava/lang/String;
1 9 1 fact Ljava/security/cert/CertificateFactory;
2 9 2 is Ljava/io/FileInputStream;
3 9 3 cert Ljava/security/cert/X509Certificate;
4 9 4 ks Ljava/security/KeyStore;
7 9 5 trustManagerFactory Ljavax/net/ssl/TrustManagerFactory;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.cert.CertificateException, java.security.KeyStoreException, java.io.IOException
MethodParameters:
Name Flags
caPath final
private static com.mongodb.connection.SslSettings$Builder lambda$1(com.mongodb.ConnectionString);
descriptor: (Lcom/mongodb/ConnectionString;)Lcom/mongodb/connection/SslSettings$Builder;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.mongodb.connection.SslSettings.builder:()Lcom/mongodb/connection/SslSettings$Builder;
1: aload 0
invokevirtual com.mongodb.connection.SslSettings$Builder.applyConnectionString:(Lcom/mongodb/ConnectionString;)Lcom/mongodb/connection/SslSettings$Builder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 cs Lcom/mongodb/ConnectionString;
}
SourceFile: "SSLSettingsParser.java"
InnerClasses:
public final Builder = com.mongodb.connection.SslSettings$Builder of com.mongodb.connection.SslSettings
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles