grpc / grpc/grpc-java

Support SslMasterKeyHandler in NettyServerBuilder

オープン
#7,199 コメント 15 件 リアクション 1 件 担当者 0 名 GitHub で見る
enhancement good first issue
主要言語
Java
スター
12.1k
フォーク
4k
平均マージ
2日 17時間
マージ済み PR(30日)
37

説明

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?

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず NettyServerBuilder.channelFactory と protocolNegotiator から始め、次に SslMasterKeyHandler.newWireSharkSslMasterKeyHandler と ProtocolNegotiators.serverTls を読みます。サーバー側の TLS マスターキー処理でサポートされている統合ポイントを特定します。完了の条件は、サーバーが接続を受け付けることを妨げずに、ハンドラーが NettyServerBuilder で動作することです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
grpc, java
領域
backend, backend-api-design, security
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。