grpc/grpc-java

Support SslMasterKeyHandler in NettyServerBuilder

Open

#7,199 opened on Jul 10, 2020

View on GitHub
 (15 comments) (1 reaction) (0 assignees)Java (11,124 stars) (3,742 forks)batch import
enhancementgood first issue

Description

I have a problem with adding SslMasterKeyHandler#newWireSharkSslMasterKeyHandler on the server side. I tried to do this with channelFactory:

builder.channelFactory(() -> {
          final ServerChannel ch = GrpcUtil.getDefaultServerChannelFactory().newChannel();
          final ChannelPipeline pipeline = ch.pipeline();
          pipeline.addLast(SslMasterKeyHandler.newWireSharkSslMasterKeyHandler());
          return ch;
        })

and later with ProtocolNegotiator:

final SslContext sslContext = GrpcSslContexts.configure(sslClientContextBuilder).build();
final io.grpc.netty.ProtocolNegotiator negotiator = ProtocolNegotiators.serverTls(sslContext);
builder.protocolNegotiator(tlsNegotiator(negotiator);

In the first case, the setting had no effect. In the second case, the server worked incorrectly (it stopped accepting connections, even without a handler, just with a negotiator wrapper).

What should be the proper implementation?

Contributor guide

Support SslMasterKeyHandler in NettyServerBuilder · grpc/grpc-java#7199 | Good First Issue