Package io.grpc.netty

Class GrpcSslContexts


  • @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1784")
    public class GrpcSslContexts
    extends java.lang.Object
    Utility for configuring SslContext for gRPC.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static io.netty.handler.ssl.ApplicationProtocolConfig ALPN  
      private static java.lang.String HTTP2_VERSION  
      private static java.lang.String IBM_PROVIDER_NAME  
      private static java.util.logging.Logger logger  
      private static java.util.List<java.lang.String> NEXT_PROTOCOL_VERSIONS  
      private static io.netty.handler.ssl.ApplicationProtocolConfig NPN  
      private static io.netty.handler.ssl.ApplicationProtocolConfig NPN_AND_ALPN  
      private static java.lang.String OPENJSSE_PROVIDER_NAME  
      private static java.lang.String SUN_PROVIDER_NAME  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private GrpcSslContexts()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static io.netty.handler.ssl.SslContextBuilder configure​(io.netty.handler.ssl.SslContextBuilder builder)
      Set ciphers and APN appropriate for gRPC.
      static io.netty.handler.ssl.SslContextBuilder configure​(io.netty.handler.ssl.SslContextBuilder builder, io.netty.handler.ssl.SslProvider provider)
      Set ciphers and APN appropriate for gRPC.
      static io.netty.handler.ssl.SslContextBuilder configure​(io.netty.handler.ssl.SslContextBuilder builder, java.security.Provider jdkProvider)
      Set ciphers and APN appropriate for gRPC.
      private static io.netty.handler.ssl.SslProvider defaultSslProvider()
      Returns OpenSSL if available, otherwise returns the JDK provider.
      (package private) static void ensureAlpnAndH2Enabled​(io.netty.handler.ssl.ApplicationProtocolNegotiator alpnNegotiator)  
      private static java.security.Provider findJdkProvider()  
      static io.netty.handler.ssl.SslContextBuilder forClient()
      Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
      static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.File keyCertChainFile, java.io.File keyFile)
      Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
      static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.File keyCertChainFile, java.io.File keyFile, java.lang.String keyPassword)
      Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
      static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.InputStream keyCertChain, java.io.InputStream key)
      Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
      static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.InputStream keyCertChain, java.io.InputStream key, java.lang.String keyPassword)
      Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • NEXT_PROTOCOL_VERSIONS

        private static final java.util.List<java.lang.String> NEXT_PROTOCOL_VERSIONS
      • ALPN

        private static final io.netty.handler.ssl.ApplicationProtocolConfig ALPN
      • NPN

        private static final io.netty.handler.ssl.ApplicationProtocolConfig NPN
      • NPN_AND_ALPN

        private static final io.netty.handler.ssl.ApplicationProtocolConfig NPN_AND_ALPN
      • SUN_PROVIDER_NAME

        private static final java.lang.String SUN_PROVIDER_NAME
        See Also:
        Constant Field Values
      • IBM_PROVIDER_NAME

        private static final java.lang.String IBM_PROVIDER_NAME
        See Also:
        Constant Field Values
      • OPENJSSE_PROVIDER_NAME

        private static final java.lang.String OPENJSSE_PROVIDER_NAME
        See Also:
        Constant Field Values
    • Constructor Detail

      • GrpcSslContexts

        private GrpcSslContexts()
    • Method Detail

      • forClient

        public static io.netty.handler.ssl.SslContextBuilder forClient()
        Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
        See Also:
        SslContextBuilder.forClient(), configure(SslContextBuilder)
      • forServer

        public static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.File keyCertChainFile,
                                                                       java.io.File keyFile)
        Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
        See Also:
        SslContextBuilder.forServer(File, File), configure(SslContextBuilder)
      • forServer

        public static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.File keyCertChainFile,
                                                                       java.io.File keyFile,
                                                                       java.lang.String keyPassword)
        Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
        See Also:
        SslContextBuilder.forServer(File, File, String), configure(SslContextBuilder)
      • forServer

        public static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.InputStream keyCertChain,
                                                                       java.io.InputStream key)
        Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
        See Also:
        SslContextBuilder.forServer(InputStream, InputStream), configure(SslContextBuilder)
      • forServer

        public static io.netty.handler.ssl.SslContextBuilder forServer​(java.io.InputStream keyCertChain,
                                                                       java.io.InputStream key,
                                                                       java.lang.String keyPassword)
        Creates an SslContextBuilder with ciphers and APN appropriate for gRPC.
        See Also:
        SslContextBuilder.forServer(InputStream, InputStream, String), configure(SslContextBuilder)
      • configure

        @CanIgnoreReturnValue
        public static io.netty.handler.ssl.SslContextBuilder configure​(io.netty.handler.ssl.SslContextBuilder builder)
        Set ciphers and APN appropriate for gRPC. Precisely what is set is permitted to change, so if an application requires particular settings it should override the options set here.
      • configure

        @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1784")
        @CanIgnoreReturnValue
        public static io.netty.handler.ssl.SslContextBuilder configure​(io.netty.handler.ssl.SslContextBuilder builder,
                                                                       io.netty.handler.ssl.SslProvider provider)
        Set ciphers and APN appropriate for gRPC. Precisely what is set is permitted to change, so if an application requires particular settings it should override the options set here.
      • configure

        @CanIgnoreReturnValue
        public static io.netty.handler.ssl.SslContextBuilder configure​(io.netty.handler.ssl.SslContextBuilder builder,
                                                                       java.security.Provider jdkProvider)
        Set ciphers and APN appropriate for gRPC. Precisely what is set is permitted to change, so if an application requires particular settings it should override the options set here.
      • defaultSslProvider

        private static io.netty.handler.ssl.SslProvider defaultSslProvider()
        Returns OpenSSL if available, otherwise returns the JDK provider.
      • findJdkProvider

        private static java.security.Provider findJdkProvider()
      • ensureAlpnAndH2Enabled

        static void ensureAlpnAndH2Enabled​(io.netty.handler.ssl.ApplicationProtocolNegotiator alpnNegotiator)