grpc/grpc-java

Support SslMasterKeyHandler in NettyServerBuilder

Open

#7.199 geöffnet am 10. Juli 2020

Auf GitHub ansehen
 (15 Kommentare) (1 Reaktion) (0 zugewiesene Personen)Java (3.742 Forks)batch import
enhancementgood first issue

Repository-Metriken

Stars
 (11.124 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 23T 22h) (43 gemergte PRs in 30 T)

Beschreibung

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