Package javax.net.ssl

Class SSLServerSocket

java.lang.Object
java.net.ServerSocket
javax.net.ssl.SSLServerSocket
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
OpenSSLServerSocketImpl, SSLServerSocketImpl

public abstract class SSLServerSocket
extends ServerSocket
The extension of ServerSocket which provides secure server sockets based on protocols like SSL, TLS, or others.
  • Constructor Details

    • SSLServerSocket

      protected SSLServerSocket() throws IOException
      Only to be used by subclasses.

      Creates a TCP server socket with the default authentication context.

      Throws:
      IOException - if creating the socket fails.
    • SSLServerSocket

      protected SSLServerSocket​(int port) throws IOException
      Only to be used by subclasses.

      Creates a TCP server socket on the specified port with the default authentication context. The connection's default backlog size is 50 connections.

      Parameters:
      port - the port to listen on.
      Throws:
      IOException - if creating the socket fails.
    • SSLServerSocket

      protected SSLServerSocket​(int port, int backlog) throws IOException
      Only to be used by subclasses.

      Creates a TCP server socket on the specified port using the specified backlog and the default authentication context.

      Parameters:
      port - the port to listen on.
      backlog - the number of pending connections to queue.
      Throws:
      IOException - if creating the socket fails.
    • SSLServerSocket

      protected SSLServerSocket​(int port, int backlog, InetAddress address) throws IOException
      Only to be used by subclasses.

      Creates a TCP server socket on the specified port, using the specified backlog, listening on the specified interface, and using the default authentication context.

      Parameters:
      port - the port the listen on.
      backlog - the number of pending connections to queue.
      address - the address of the interface to accept connections on.
      Throws:
      IOException - if creating the socket fails.
  • Method Details

    • getEnabledCipherSuites

      public abstract String[] getEnabledCipherSuites()
      Returns the names of the enabled cipher suites to be used for new connections.
      Returns:
      the names of the enabled cipher suites to be used for new connections.
    • setEnabledCipherSuites

      public abstract void setEnabledCipherSuites​(String[] suites)
      Sets the names of the cipher suites to be enabled for new connections. Only cipher suites returned by getSupportedCipherSuites() are allowed.
      Parameters:
      suites - the names of the to be enabled cipher suites.
      Throws:
      IllegalArgumentException - if one of the cipher suite names is not supported.
    • getSupportedCipherSuites

      public abstract String[] getSupportedCipherSuites()
      Returns the names of the supported cipher suites.
      Returns:
      the names of the supported cipher suites.
    • getSupportedProtocols

      public abstract String[] getSupportedProtocols()
      Returns the names of the supported protocols.
      Returns:
      the names of the supported protocols.
    • getEnabledProtocols

      public abstract String[] getEnabledProtocols()
      Returns the names of the enabled protocols to be used for new connections.
      Returns:
      the names of the enabled protocols to be used for new connections.
    • setEnabledProtocols

      public abstract void setEnabledProtocols​(String[] protocols)
      Sets the names of the protocols to be enabled for new connections. Only protocols returned by getSupportedProtocols() are allowed.
      Parameters:
      protocols - the names of the to be enabled protocols.
      Throws:
      IllegalArgumentException - if one of the protocols is not supported.
    • setNeedClientAuth

      public abstract void setNeedClientAuth​(boolean need)
      Sets whether server-mode connections will be configured to require client authentication. The client authentication is one of the following:
      • authentication required
      • authentication requested
      • no authentication needed
      This method overrides the setting of setWantClientAuth(boolean).
      Parameters:
      need - true if client authentication is required, false if no authentication is needed.
    • getNeedClientAuth

      public abstract boolean getNeedClientAuth()
      Returns whether server-mode connections will be configured to require client authentication.
      Returns:
      true if client authentication is required, false if no client authentication is needed.
    • setWantClientAuth

      public abstract void setWantClientAuth​(boolean want)
      Sets whether server-mode connections will be configured to request client authentication. The client authentication is one of the following:
      • authentication required
      • authentication requested
      • no authentication needed
      This method overrides the setting of setNeedClientAuth(boolean).
      Parameters:
      want - true if client authentication should be requested, false if no authentication is needed.
    • getWantClientAuth

      public abstract boolean getWantClientAuth()
      Returns whether server-mode connections will be configured to request client authentication.
      Returns:
      true is client authentication will be requested, false if no client authentication is needed.
    • setUseClientMode

      public abstract void setUseClientMode​(boolean mode)
      Sets whether new connections should act in client mode when handshaking.
      Parameters:
      mode - true if new connections should act in client mode, false if not.
    • getUseClientMode

      public abstract boolean getUseClientMode()
      Returns whether new connection will act in client mode when handshaking.
      Returns:
      true if new connections will act in client mode when handshaking, false if not.
    • setEnableSessionCreation

      public abstract void setEnableSessionCreation​(boolean flag)
      Sets whether new SSL sessions may be established for new connections.
      Parameters:
      flag - true if new SSL sessions may be established, false if existing SSL sessions must be reused.
    • getEnableSessionCreation

      public abstract boolean getEnableSessionCreation()
      Returns whether new SSL sessions may be established for new connections.
      Returns:
      true if new SSL sessions may be established, false if existing SSL sessions must be reused.