Skip to content

Commit 1fbfdab

Browse files
committed
Remove instanceof check vs non-JDK SSL providers
1 parent 41d9c33 commit 1fbfdab

File tree

3 files changed

+18
-26
lines changed

3 files changed

+18
-26
lines changed

src/main/java/io/vertx/core/net/impl/SSLHelper.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ ByteBufAllocator serverByteBufAllocator(SslContextProvider ctxProvider) {
7676

7777
private boolean usesJDKSSLWithPooledHeapBuffers(SslContextProvider ctxProvider) {
7878
return ssl && sslEngineOptions instanceof JdkSSLEngineOptions &&
79-
ctxProvider.sslProvider() == SslProvider.JDK &&
79+
ctxProvider.jdkSSLProvider() &&
8080
((JdkSSLEngineOptions) sslEngineOptions).isPooledHeapBuffers();
8181
}
8282

@@ -173,22 +173,22 @@ private static class CachedProvider {
173173

174174
private class EngineConfig {
175175

176-
private final SslProvider sslProvider;
176+
private final boolean jdkSSLProvider;
177177
private final SSLOptions sslOptions;
178178
private final Supplier<SslContextFactory> supplier;
179179
private final boolean useWorkerPool;
180180

181-
public EngineConfig(SslProvider sslProvider, SSLOptions sslOptions, Supplier<SslContextFactory> supplier,
181+
public EngineConfig(boolean jdkSSLProvider, SSLOptions sslOptions, Supplier<SslContextFactory> supplier,
182182
boolean useWorkerPool) {
183-
this.sslProvider = sslProvider;
183+
this.jdkSSLProvider = jdkSSLProvider;
184184
this.sslOptions = sslOptions;
185185
this.supplier = supplier;
186186
this.useWorkerPool = useWorkerPool;
187187
}
188188

189189
SslContextProvider sslContextProvider() {
190190
return new SslContextProvider(
191-
sslProvider,
191+
jdkSSLProvider,
192192
clientAuth,
193193
endpointIdentificationAlgorithm,
194194
applicationProtocols,
@@ -319,26 +319,20 @@ private Future<EngineConfig> build(SSLOptions sslOptions, ContextInternal ctx) {
319319
}).compose(v2 -> ctx.<EngineConfig>executeBlockingInternal(p -> {
320320
Supplier<SslContextFactory> supplier;
321321
boolean useWorkerPool;
322-
SslProvider sslProvider;
322+
final boolean jdkSSLProvider;
323323
try {
324324
SSLEngineOptions resolvedEngineOptions = resolveEngineOptions(sslEngineOptions, useAlpn);
325325
supplier = resolvedEngineOptions::sslContextFactory;
326326
useWorkerPool = resolvedEngineOptions.getUseWorkerThread();
327-
if (resolvedEngineOptions instanceof JdkSSLEngineOptions) {
328-
sslProvider = SslProvider.JDK;
329-
} else if (resolvedEngineOptions instanceof OpenSSLEngineOptions) {
330-
sslProvider = SslProvider.OPENSSL;
331-
} else {
332-
sslProvider = SslProvider.JDK;
333-
}
327+
jdkSSLProvider = resolvedEngineOptions instanceof JdkSSLEngineOptions;
334328
} catch (Exception e) {
335329
p.fail(e);
336330
return;
337331
}
338-
p.complete(new EngineConfig(sslProvider, sslOptions, supplier, useWorkerPool));
332+
p.complete(new EngineConfig(jdkSSLProvider, sslOptions, supplier, useWorkerPool));
339333
})).onComplete(promise);
340334
} else {
341-
sslContextFactorySupplier = Future.succeededFuture(new EngineConfig(SslProvider.JDK, sslOptions, () -> new DefaultSslContextFactory(SslProvider.JDK, false), SSLEngineOptions.DEFAULT_USE_WORKER_POOL));
335+
sslContextFactorySupplier = Future.succeededFuture(new EngineConfig(true, sslOptions, () -> new DefaultSslContextFactory(SslProvider.JDK, false), SSLEngineOptions.DEFAULT_USE_WORKER_POOL));
342336
}
343337
return sslContextFactorySupplier;
344338
}

src/main/java/io/vertx/core/net/impl/SslContextProvider.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
package io.vertx.core.net.impl;
1212

1313
import io.netty.handler.ssl.SslContext;
14-
import io.netty.handler.ssl.SslProvider;
1514
import io.vertx.core.VertxException;
1615
import io.vertx.core.http.ClientAuth;
1716
import io.vertx.core.spi.tls.SslContextFactory;
@@ -31,7 +30,7 @@
3130
*/
3231
public class SslContextProvider {
3332

34-
private final SslProvider providerType;
33+
private final boolean jdkSSLProvider;
3534
private final Supplier<SslContextFactory> provider;
3635
private final Set<String> enabledProtocols;
3736
private final List<CRL> crls;
@@ -44,7 +43,7 @@ public class SslContextProvider {
4443
private final Function<String, KeyManagerFactory> keyManagerFactoryMapper;
4544
private final Function<String, TrustManager[]> trustManagerMapper;
4645

47-
public SslContextProvider(SslProvider providerType,
46+
public SslContextProvider(boolean jdkSSLProvider,
4847
ClientAuth clientAuth,
4948
String endpointIdentificationAlgorithm,
5049
List<String> applicationProtocols,
@@ -56,7 +55,7 @@ public SslContextProvider(SslProvider providerType,
5655
Function<String, TrustManager[]> trustManagerMapper,
5756
List<CRL> crls,
5857
Supplier<SslContextFactory> provider) {
59-
this.providerType = providerType;
58+
this.jdkSSLProvider = jdkSSLProvider;
6059
this.provider = provider;
6160
this.clientAuth = clientAuth;
6261
this.endpointIdentificationAlgorithm = endpointIdentificationAlgorithm;
@@ -70,8 +69,8 @@ public SslContextProvider(SslProvider providerType,
7069
this.crls = crls;
7170
}
7271

73-
SslProvider sslProvider() {
74-
return providerType;
72+
boolean jdkSSLProvider() {
73+
return jdkSSLProvider;
7574
}
7675

7776
public VertxSslContext createContext(boolean server,

src/test/java/io/vertx/core/net/impl/SSLAllocatorTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.junit.Test;
1717

1818
import io.netty.buffer.PooledByteBufAllocator;
19-
import io.netty.handler.ssl.SslProvider;
2019
import io.vertx.core.buffer.impl.PartialPooledByteBufAllocator;
2120
import io.vertx.core.http.HttpClientOptions;
2221
import io.vertx.core.http.HttpServerOptions;
@@ -41,7 +40,7 @@ public void testUsePartialPooledByteBufAllocatorInstanceWhenNotSpecified() throw
4140
helper
4241
.buildContextProvider(new SSLOptions().setKeyCertOptions(Cert.CLIENT_JKS.get()).setTrustOptions(Trust.SERVER_JKS.get()), (ContextInternal) vertx.getOrCreateContext())
4342
.onComplete(onSuccess(provider -> {
44-
assertSame(SslProvider.JDK, provider.sslProvider());
43+
assertTrue(provider.jdkSSLProvider());
4544
assertSame(PartialPooledByteBufAllocator.INSTANCE, helper.clientByteBufAllocator(provider));
4645
assertSame(PartialPooledByteBufAllocator.INSTANCE, helper.serverByteBufAllocator(provider));
4746
testComplete();
@@ -61,7 +60,7 @@ public void testUsePartialPooledByteBufAllocatorInstanceIfDefaultJDKSSLIsConfigu
6160
helper
6261
.buildContextProvider(new SSLOptions().setKeyCertOptions(Cert.CLIENT_JKS.get()).setTrustOptions(Trust.SERVER_JKS.get()), (ContextInternal) vertx.getOrCreateContext())
6362
.onComplete(onSuccess(provider -> {
64-
assertSame(SslProvider.JDK, provider.sslProvider());
63+
assertTrue(provider.jdkSSLProvider());
6564
assertSame(PartialPooledByteBufAllocator.INSTANCE, helper.clientByteBufAllocator(provider));
6665
assertSame(PartialPooledByteBufAllocator.INSTANCE, helper.serverByteBufAllocator(provider));
6766
testComplete();
@@ -81,7 +80,7 @@ public void testUsePooledByteBufAllocatorDefaultIfJDKSSLPooledHeapBufferConfigur
8180
helper
8281
.buildContextProvider(new SSLOptions().setKeyCertOptions(Cert.CLIENT_JKS.get()).setTrustOptions(Trust.SERVER_JKS.get()), (ContextInternal) vertx.getOrCreateContext())
8382
.onComplete(onSuccess(provider -> {
84-
assertSame(SslProvider.JDK, provider.sslProvider());
83+
assertTrue(provider.jdkSSLProvider());
8584
assertSame(PooledByteBufAllocator.DEFAULT, helper.clientByteBufAllocator(provider));
8685
assertSame(PooledByteBufAllocator.DEFAULT, helper.serverByteBufAllocator(provider));
8786
testComplete();
@@ -133,7 +132,7 @@ public void testUsePooledByteBufAllocatorDefaultIfOpenSSLIsConfigured() {
133132
.setPemKeyCertOptions(Cert.CLIENT_PEM.get()).setTrustOptions(Trust.SERVER_PEM.get()),
134133
null);
135134
helper.buildContextProvider(new SSLOptions().setKeyCertOptions(Cert.CLIENT_PEM.get()).setTrustOptions(Trust.SERVER_PEM.get()), (ContextInternal) vertx.getOrCreateContext()).onComplete(onSuccess(provider -> {
136-
assertSame(SslProvider.OPENSSL, provider.sslProvider());
135+
assertFalse(provider.jdkSSLProvider());
137136
assertSame(PartialPooledByteBufAllocator.INSTANCE, helper.clientByteBufAllocator(provider));
138137
assertSame(PartialPooledByteBufAllocator.INSTANCE, helper.serverByteBufAllocator(provider));
139138
testComplete();

0 commit comments

Comments
 (0)