クラス TcpNioSSLConnection
java.lang.ObjectSE
org.springframework.integration.ip.tcp.connection.TcpConnectionSupport
org.springframework.integration.ip.tcp.connection.TcpNioConnection
org.springframework.integration.ip.tcp.connection.TcpNioSSLConnection
- 実装されているすべてのインターフェース:
RunnableSE,TcpConnection
NIO を介した SSL/TLS をサポートする
TcpConnection の実装。ソケットを使用する TcpNetConnection とは異なり、JVM は NIO が使用する SocketChannels の SSL を直接サポートしていません。代わりに、SSLEngine が提供されます。これにより、SSL 暗号化は、プレーンテキストバッファーを渡し、暗号化されたバッファーを受信してネットワーク経由で送信することによって実行されます。同様に、ネットワークから読み取られた暗号化されたデータは復号化されます。ただし、これを行う前に、ピアが交換する必要のあるデータバッファの作成を含む、特定のハンドシェイク操作が必要です。そのような転送の数が必要です。ハンドシェイクが終了すると、データの暗号化 / 復号化は比較的簡単になります。
また、ハンドシェイクを再実行する必要があると見なされる場合もあります。
このクラスは、開始ピアと受信ピアの両方から、必要に応じてハンドシェイクの管理をサポートします。
- 導入:
- 2.2
- 作成者:
- Gary Russell, Artem Bilan, Christian Tzolov
ネストされたクラスの要約
ネストされたクラスクラス org.springframework.integration.ip.tcp.connection.TcpNioConnection から継承されたネストクラス / インターフェース
TcpNioConnection.ChannelOutputStreamフィールドのサマリー
クラス org.springframework.integration.ip.tcp.connection.TcpConnectionSupport から継承されたフィールド
loggerコンストラクターの概要
コンストラクターコンストラクター説明TcpNioSSLConnection(SocketChannelSE socketChannel, boolean server, boolean lookupHost, @Nullable ApplicationEventPublisher applicationEventPublisher, @Nullable StringSE connectionFactoryName, SSLEngineSE sslEngine) メソッドのサマリー
修飾子と型メソッド説明voidclose()この接続を閉じます。protected TcpNioConnection.ChannelOutputStreamvoidinit()SSLEngine を初期化し、暗号化 / 復号化バッファを設定します。protected voidsendToPipe(ByteBufferSE networkBuffer) スーパークラスメソッドをオーバーライドして、復号化を実行したり、ハンドシェイクに参加したりします。voidsetHandshakeTimeout(int handshakeTimeout) ハンドシェイクデータの待機中のタイムアウトを設定します(秒単位)。クラス org.springframework.integration.ip.tcp.connection.TcpNioConnection から継承されたメソッド
allocate, getDeserializerStateKey, getLastRead, getLastSend, getPayload, getPort, inputStream, isOpen, isUsingDirectBuffers, readPacket, run, send, setLastRead, setPipeTimeout, setTaskExecutor, setUsingDirectBuffers, shutdownInput, shutdownOutputクラス org.springframework.integration.ip.tcp.connection.TcpConnectionSupport から継承されたメソッド
closeConnection, enableManualListenerRegistration, getConnectionFactoryName, getConnectionId, getDeserializer, getHostAddress, getHostName, getListener, getMapper, getSender, getSenders, getSerializer, getSocketInfo, incrementAndGetConnectionSequence, isNoReadErrorOnClose, isServer, publishConnectionCloseEvent, publishConnectionExceptionEvent, publishConnectionOpenEvent, publishEvent, registerListener, registerSender, registerSenders, registerTestListener, sendExceptionToListener, setDeserializer, setMapper, setNeedsTest, setNoReadErrorOnClose, setSerializer, setWrapped, setWrapper, toString
コンストラクターの詳細
TcpNioSSLConnection
public TcpNioSSLConnection(SocketChannelSE socketChannel, boolean server, boolean lookupHost, @Nullable ApplicationEventPublisher applicationEventPublisher, @Nullable StringSE connectionFactoryName, SSLEngineSE sslEngine)
メソッドの詳細
setHandshakeTimeout
public void setHandshakeTimeout(int handshakeTimeout) ハンドシェイクデータの待機中のタイムアウトを設定します(秒単位)。デフォルトは 30 です。- パラメーター:
handshakeTimeout- タイムアウト。- 導入:
- 4.3.6
getSslSession
- 次で指定:
- インターフェース
TcpConnectionのgetSslSession - オーバーライド:
- クラス
TcpNioConnectionのgetSslSession - 戻り値:
- SSL が使用されている場合、この接続に関連付けられている
SSLSessionSE。そうでない場合は null
sendToPipe
スーパークラスメソッドをオーバーライドして、復号化を実行したり、ハンドシェイクに参加したりします。復号化されたデータはスーパークラスに送信され、メッセージにアセンブルされます。ネットワークから受信したデータは、複数の SSL パケットを構成する場合があり、部分的なパケットで終わる場合があります。その場合、バッファは圧縮され、パケットの残りを受信する準備が整います。- オーバーライド:
- クラス
TcpNioConnectionのsendToPipe - 例外:
IOExceptionSE
init
public void init()SSLEngine を初期化し、暗号化 / 復号化バッファを設定します。getChannelOutputStream
- オーバーライド:
- クラス
TcpNioConnectionのgetChannelOutputStream
getSSLChannelOutputStream
close
public void close()クラスからコピーされた説明:TcpConnectionSupportこの接続を閉じます。- 次で指定:
- インターフェース
TcpConnectionのclose - オーバーライド:
- クラス
TcpNioConnectionのclose