From c0235e7b85bea0fe7acffe9cf64f093d9bc7b88a Mon Sep 17 00:00:00 2001 From: Ankit Shubham Date: Wed, 20 Feb 2019 05:05:18 +0530 Subject: [PATCH] io,grpc,netty: Add support for IBMJSSE2 provider This commit improves gRPC to run gRPC server with TLS enabled on AIX machines with IBMJSSE2 as their JDK SSL provider. --- .../java/io/grpc/netty/GrpcSslContexts.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java b/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java index b6aed29abe5..a78bbcb1736 100644 --- a/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java +++ b/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java @@ -95,6 +95,7 @@ private GrpcSslContexts() {} NEXT_PROTOCOL_VERSIONS); private static final String SUN_PROVIDER_NAME = "SunJSSE"; + private static final String IBM_PROVIDER_NAME = "IBMJSSE2"; private static final Method IS_CONSCRYPT_PROVIDER; static { @@ -225,6 +226,18 @@ public static SslContextBuilder configure(SslContextBuilder builder, Provider jd throw new IllegalArgumentException( SUN_PROVIDER_NAME + " selected, but Jetty NPN/ALPN unavailable"); } + } else if (IBM_PROVIDER_NAME.equals(jdkProvider.getName())) { + // Jetty ALPN/NPN only supports one of NPN or ALPN + if (JettyTlsUtil.isJettyAlpnConfigured()) { + apc = ALPN; + } else if (JettyTlsUtil.isJettyNpnConfigured()) { + apc = NPN; + } else if (JettyTlsUtil.isJava9AlpnAvailable()) { + apc = ALPN; + } else { + throw new IllegalArgumentException( + IBM_PROVIDER_NAME + " selected, but Jetty NPN/ALPN unavailable"); + } } else if (isConscrypt(jdkProvider)) { apc = ALPN; } else { @@ -268,6 +281,12 @@ private static Provider findJdkProvider() { || JettyTlsUtil.isJava9AlpnAvailable()) { return provider; } + } else if (IBM_PROVIDER_NAME.equals(provider.getName())) { + if (JettyTlsUtil.isJettyAlpnConfigured() + || JettyTlsUtil.isJettyNpnConfigured() + || JettyTlsUtil.isJava9AlpnAvailable()) { + return provider; + } } else if (isConscrypt(provider)) { return provider; } @@ -305,3 +324,4 @@ static void ensureAlpnAndH2Enabled( alpnNegotiator.protocols()); } } +