クラス TcpNioSSLConnection

実装されているすべてのインターフェース:
RunnableSETcpConnection

public class TcpNioSSLConnection extends TcpNioConnection
NIO を介した SSL/TLS をサポートする TcpConnection の実装。ソケットを使用する TcpNetConnection とは異なり、JVM は NIO が使用する SocketChannels の SSL を直接サポートしていません。代わりに、SSLEngine が提供されます。これにより、SSL 暗号化は、プレーンテキストバッファーを渡し、暗号化されたバッファーを受信してネットワーク経由で送信することによって実行されます。同様に、ネットワークから読み取られた暗号化されたデータは復号化されます。

ただし、これを行う前に、ピアが交換する必要のあるデータバッファの作成を含む、特定のハンドシェイク操作が必要です。そのような転送の数が必要です。ハンドシェイクが終了すると、データの暗号化 / 復号化は比較的簡単になります。

また、ハンドシェイクを再実行する必要があると見なされる場合もあります。

このクラスは、開始ピアと受信ピアの両方から、必要に応じてハンドシェイクの管理をサポートします。

導入:
2.2
作成者:
Gary Russell, Artem Bilan, Christian Tzolov
  • コンストラクターの詳細

  • メソッドの詳細

    • setHandshakeTimeout

      public void setHandshakeTimeout(int handshakeTimeout)
      ハンドシェイクデータの待機中のタイムアウトを設定します(秒単位)。デフォルトは 30 です。
      パラメーター:
      handshakeTimeout - タイムアウト。
      導入:
      4.3.6
    • getSslSession

      public SSLSessionSE getSslSession()
      次で指定:
      インターフェース TcpConnectiongetSslSession 
      オーバーライド:
      クラス TcpNioConnectiongetSslSession 
      戻り値:
      SSL が使用されている場合、この接続に関連付けられている SSLSessionSE。そうでない場合は null
    • sendToPipe

      protected void sendToPipe(ByteBufferSE networkBuffer) throws IOExceptionSE
      スーパークラスメソッドをオーバーライドして、復号化を実行したり、ハンドシェイクに参加したりします。復号化されたデータはスーパークラスに送信され、メッセージにアセンブルされます。ネットワークから受信したデータは、複数の SSL パケットを構成する場合があり、部分的なパケットで終わる場合があります。その場合、バッファは圧縮され、パケットの残りを受信する準備が整います。
      オーバーライド:
      クラス TcpNioConnectionsendToPipe 
      例外:
      IOExceptionSE
    • init

      public void init()
      SSLEngine を初期化し、暗号化 / 復号化バッファを設定します。
    • getChannelOutputStream

      protected TcpNioConnection.ChannelOutputStream getChannelOutputStream()
      オーバーライド:
      クラス TcpNioConnectiongetChannelOutputStream 
    • getSSLChannelOutputStream

      protected TcpNioSSLConnection.SSLChannelOutputStream getSSLChannelOutputStream()
    • close

      public void close()
      クラスからコピーされた説明: TcpConnectionSupport
      この接続を閉じます。
      次で指定:
      インターフェース TcpConnectionclose 
      オーバーライド:
      クラス TcpNioConnectionclose