grpc/grpc-java

Support SslMasterKeyHandler in NettyServerBuilder

Aperta

#7199 aperta il 10 lug 2020

 (15 commenti) (1 reazione) (0 assegnatari)Java (3742 fork)batch import
enhancementgood first issue

Metriche repository

Star
 (11.124 stelle)
Metriche merge PR
 (Merge medio 23g 22h) (43 PR mergiate in 30 g)

Descrizione

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?

Guida contributor