grpc/grpc-java

Support SslMasterKeyHandler in NettyServerBuilder

Open

#7.199 aberto em 10 de jul. de 2020

Ver no GitHub
 (15 comments) (1 reaction) (0 assignees)Java (3.742 forks)batch import
enhancementgood first issue

Métricas do repositório

Stars
 (11.124 stars)
Métricas de merge de PR
 (Mesclagem média 23d 22h) (43 fundiu PRs em 30d)

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?

Guia do colaborador