NettyはSSLEngineにclose_notifyを通知することができますか?

私は私の(非ネット)クライアントがSSLSocketを閉じているが、基底のソケットは閉じていない状況がある。これは、サーバーにclose_notifyを送信すると予想されるものとまったく同じですが、close_notifyで応答します。

しかし、私のサーバーはNettyベースで、SSLHandlerを使用してLoggingHandler()を追加することで、close_notifyを取得し、close_notifyで応答することがわかります。問題は、上流のハンドラが通知を一切受けないことです。基底のソケットが閉じていないので、切断されていません。私は特にソケットを開いたままにしたい。

私が必要とするのは、SSLHandlerがシャットダウンしたという通知を受け取ることです。そのため、パイプラインからSLLHandlerを削除し、通常のTCPとの通信を続けることができます。

これはNettyでも可能ですか?

私の調査の一環として、SSlHandlerをサーバー/ netty側からクローズすることを試みました.Nettyがクライアントを閉じる前にsslhandlerを終了する以外は動作します(設計と仕様に従って)。ソケットは、SslHandlerがシャットダウンしたときにそのclose_notifyを生データとして取得します。可能であれば、SSLメッセージを読み取るSslEnginesジョブを複製するハンドラを記述する必要はありません。私はSSlHandlerがクライアントclose_notifyの応答を待たない理由を理解しています。なぜなら、私はSSLソケットをより詳細に制御できるクライアント側からしようとしたのです。

1
答えはいいえ、私はソースコードを調べて、現在Nettyがclose_notifyを処理しているSSLEngineを検出しないように見えるので、SSLEngineが状態CLOSEDになっているが、上位層はそれを知らない状況に終わる。私は、CLOSEDステータスを検出するために何をする必要があるかを見ていきます。 SSLEngineが終了した場合にコールバックを呼び出すことができるように、おそらく未来をSslHandlerに付けることができると思います。
追加された 著者 Jim Morris,

答えはありません

0