Class InputShutdownCheckingSslSocket
- java.lang.Object
-
- java.net.Socket
-
- javax.net.ssl.SSLSocket
-
- software.amazon.awssdk.http.apache.internal.net.DelegateSslSocket
-
- software.amazon.awssdk.http.apache.internal.net.InputShutdownCheckingSslSocket
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public final class InputShutdownCheckingSslSocket extends DelegateSslSocket
Wrapper socket that ensures the read end of the socket is still open before performing awrite()
. In TLS 1.3, it is permitted for the connection to be in a half-closed state, which is dangerous for the Apache client because it can get stuck in a state where it continues to write to the socket and potentially end up a blocked state writing to the socket indefinitely.
-
-
Field Summary
-
Fields inherited from class software.amazon.awssdk.http.apache.internal.net.DelegateSslSocket
sock
-
-
Constructor Summary
Constructors Constructor Description InputShutdownCheckingSslSocket(SSLSocket sock)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OutputStream
getOutputStream()
-
Methods inherited from class software.amazon.awssdk.http.apache.internal.net.DelegateSslSocket
addHandshakeCompletedListener, bind, close, connect, connect, getChannel, getEnabledCipherSuites, getEnabledProtocols, getEnableSessionCreation, getInetAddress, getInputStream, getKeepAlive, getLocalAddress, getLocalPort, getLocalSocketAddress, getNeedClientAuth, getOOBInline, getPort, getReceiveBufferSize, getRemoteSocketAddress, getReuseAddress, getSendBufferSize, getSession, getSoLinger, getSoTimeout, getSupportedCipherSuites, getSupportedProtocols, getTcpNoDelay, getTrafficClass, getUseClientMode, getWantClientAuth, isBound, isClosed, isConnected, isInputShutdown, isOutputShutdown, removeHandshakeCompletedListener, sendUrgentData, setEnabledCipherSuites, setEnabledProtocols, setEnableSessionCreation, setKeepAlive, setNeedClientAuth, setOOBInline, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoLinger, setSoTimeout, setTcpNoDelay, setTrafficClass, setUseClientMode, setWantClientAuth, shutdownInput, shutdownOutput, startHandshake, toString
-
Methods inherited from class javax.net.ssl.SSLSocket
getApplicationProtocol, getHandshakeApplicationProtocol, getHandshakeApplicationProtocolSelector, getHandshakeSession, getSSLParameters, setHandshakeApplicationProtocolSelector, setSSLParameters
-
Methods inherited from class java.net.Socket
setSocketImplFactory
-
-
-
-
Constructor Detail
-
InputShutdownCheckingSslSocket
public InputShutdownCheckingSslSocket(SSLSocket sock)
-
-
Method Detail
-
getOutputStream
public OutputStream getOutputStream() throws IOException
- Overrides:
getOutputStream
in classDelegateSslSocket
- Throws:
IOException
-
-