Module 
Package org.xnio.ssl

Class JsseSslStreamConnection

All Implemented Interfaces:
Closeable, AutoCloseable, Channel, InterruptibleChannel, BoundChannel, CloseableChannel, CloseListenerSettable<StreamConnection>, Configurable, ConnectedChannel, SslChannel

public final class JsseSslStreamConnection extends SslConnection
StreamConnection with SSL support.
Author:
Flavia Rainone
  • Constructor Details

    • JsseSslStreamConnection

      public JsseSslStreamConnection(StreamConnection connection, SSLEngine sslEngine, boolean startTls)
  • Method Details

    • startHandshake

      public void startHandshake() throws IOException
      Start or restart the SSL/TLS handshake. To force a complete SSL/TLS session renegotiation, the current session should be invalidated prior to calling this method. This method is not needed for the initial handshake unless the Options.SSL_STARTTLS option is set as sending or receiving over the channel will automatically initiate it. This method must not be called while a read or write operation is taking place.
      Specified by:
      startHandshake in interface SslChannel
      Specified by:
      startHandshake in class SslConnection
      Throws:
      IOException - if an I/O error occurs
    • getPeerAddress

      public SocketAddress getPeerAddress()
      Get the peer address of this channel.
      Returns:
      the peer address
    • getLocalAddress

      public SocketAddress getLocalAddress()
      Get the local address that this channel is bound to.
      Returns:
      the local address
    • closeAction

      protected void closeAction() throws IOException
      The close action to perform on this connection.
      Overrides:
      closeAction in class Connection
      Throws:
      IOException - if close fails
    • notifyWriteClosed

      protected void notifyWriteClosed()
      Indicate to conduit handlers that writes have been closed.
      Overrides:
      notifyWriteClosed in class StreamConnection
    • notifyReadClosed

      protected void notifyReadClosed()
      Indicate to conduit handlers that reads have been closed.
      Overrides:
      notifyReadClosed in class StreamConnection
    • setOption

      public <T> T setOption(Option<T> option, T value) throws IllegalArgumentException, IOException
      Set an option for this channel. Unsupported options are ignored.
      Specified by:
      setOption in interface Configurable
      Overrides:
      setOption in class Connection
      Type Parameters:
      T - the type of the option value
      Parameters:
      option - the option to set
      value - the value of the option to set
      Returns:
      the previous option value, if any
      Throws:
      IllegalArgumentException - if the value is not acceptable for this option
      IOException - if an I/O error occurred when modifying the option
    • getOption

      public <T> T getOption(Option<T> option) throws IOException
      Get the value of a channel option.
      Specified by:
      getOption in interface Configurable
      Overrides:
      getOption in class Connection
      Type Parameters:
      T - the type of the option value
      Parameters:
      option - the option to get
      Returns:
      the value of the option, or null if it is not set
      Throws:
      IOException - if an I/O error occurred when reading the option
    • supportsOption

      public boolean supportsOption(Option<?> option)
      Determine whether an option is supported on this channel.
      Specified by:
      supportsOption in interface Configurable
      Overrides:
      supportsOption in class Connection
      Parameters:
      option - the option
      Returns:
      true if it is supported
    • getSslSession

      public SSLSession getSslSession()
      Get the current SSLSession for this channel.
      Specified by:
      getSslSession in interface SslChannel
      Specified by:
      getSslSession in class SslConnection
      Returns:
      the current SSLSession
    • getHandshakeSetter

      public ChannelListener.Setter<? extends SslConnection> getHandshakeSetter()
      Description copied from class: SslConnection
      Get the setter which can be used to change the handshake listener for this channel.
      Specified by:
      getHandshakeSetter in interface SslChannel
      Specified by:
      getHandshakeSetter in class SslConnection
      Returns:
      the setter
    • readClosed

      protected boolean readClosed()
      Description copied from class: Connection
      Indicate that reads have been closed on this connection.
      Overrides:
      readClosed in class Connection
      Returns:
      true if read closure was successfully indicated; false if this method has already been called
    • writeClosed

      protected boolean writeClosed()
      Description copied from class: Connection
      Indicate that writes have been closed on this connection.
      Overrides:
      writeClosed in class Connection
      Returns:
      true if write closure was successfully indicated; false if this method has already been called
    • handleHandshakeFinished

      protected void handleHandshakeFinished()
      Callback method for notification of handshake finished.
    • isReadShutdown

      public boolean isReadShutdown()
      Description copied from class: Connection
      Determine whether reads have been shut down on this connection.
      Overrides:
      isReadShutdown in class Connection
      Returns:
      true if reads were shut down
    • isWriteShutdown

      public boolean isWriteShutdown()
      Determine whether writes have been shut down on this connection.
      Overrides:
      isWriteShutdown in class Connection
      Returns:
      true if writes were shut down