Class JSSESocketFactory

  • All Implemented Interfaces:
    Cloneable
    Direct Known Subclasses:
    JSSE14SocketFactory

    public abstract class JSSESocketFactory
    extends ServerSocketFactory
    SSL server socket factory. It _requires_ a valid RSA key and JSSE.
    Author:
    Harish Prabandham, Costin Manolache, Stefan Freyr Stefansson, EKR -- renamed to JSSESocketFactory
    • Field Detail

      • defaultAlgorithm

        public static final String defaultAlgorithm
      • logger

        protected static final Logger logger
      • initialized

        protected boolean initialized
      • clientAuthNeed

        protected boolean clientAuthNeed
      • clientAuthWant

        protected boolean clientAuthWant
      • enabledCiphers

        protected String[] enabledCiphers
    • Constructor Detail

      • JSSESocketFactory

        public JSSESocketFactory()
    • Method Detail

      • createSocket

        public ServerSocket createSocket​(int port)
                                  throws IOException
        Description copied from class: ServerSocketFactory
        Returns a server socket which uses all network interfaces on the host, and is bound to a the specified port. The socket is configured with the socket options (such as accept timeout) given to this factory.
        Specified by:
        createSocket in class ServerSocketFactory
        Parameters:
        port - the port to listen to
        Throws:
        IOException - for networking errors
      • createSocket

        public ServerSocket createSocket​(int port,
                                         int backlog)
                                  throws IOException
        Description copied from class: ServerSocketFactory
        Returns a server socket which uses all network interfaces on the host, is bound to a the specified port, and uses the specified connection backlog. The socket is configured with the socket options (such as accept timeout) given to this factory.
        Specified by:
        createSocket in class ServerSocketFactory
        Parameters:
        port - the port to listen to
        backlog - how many connections are queued
        Throws:
        IOException - for networking errors
      • createSocket

        public ServerSocket createSocket​(int port,
                                         int backlog,
                                         InetAddress ifAddress)
                                  throws IOException
        Description copied from class: ServerSocketFactory
        Returns a server socket which uses only the specified network interface on the local host, is bound to a the specified port, and uses the specified connection backlog. The socket is configured with the socket options (such as accept timeout) given to this factory.
        Specified by:
        createSocket in class ServerSocketFactory
        Parameters:
        port - the port to listen to
        backlog - how many connections are queued
        ifAddress - the network interface address to use
        Throws:
        IOException - for networking errors
      • getEnabledCiphers

        protected String[] getEnabledCiphers​(String requestedCiphers,
                                             String[] supportedCiphers)
        Determines the SSL cipher suites to be enabled.
        Parameters:
        requestedCiphers - Comma-separated list of requested ciphers
        supportedCiphers - Array of supported ciphers
        Returns:
        Array of SSL cipher suites to be enabled, or null if none of the requested ciphers are supported
      • getKeystorePassword

        protected String getKeystorePassword()
        Gets the SSL server's keystore password.
      • getTruststorePassword

        protected String getTruststorePassword()
      • getTrustStore

        protected KeyStore[] getTrustStore()
                                    throws IOException
        Gets the SSL server's truststore.
        Returns:
        Array of truststores.
        Throws:
        IOException
      • init

        public abstract void init()
                           throws IOException
        Reads the keystore and initializes the SSL socket factory. Place holder method to initialize the KeyStore, etc.
        Specified by:
        init in class ServerSocketFactory
        Throws:
        IOException
      • getEnabledProtocols

        protected abstract String[] getEnabledProtocols​(SSLServerSocket socket,
                                                        String requestedProtocols)
        Determines the SSL protocol variants to be enabled.
        Parameters:
        socket - The socket to get supported list from.
        requestedProtocols - Comma-separated list of requested SSL protocol variants
        Returns:
        Array of SSL protocol variants to be enabled, or null if none of the requested protocol variants are supported
      • setEnabledProtocols

        protected abstract void setEnabledProtocols​(SSLServerSocket socket,
                                                    String[] protocols)
        Set the SSL protocol variants to be enabled.
        Parameters:
        socket - the SSLServerSocket.
        protocols - the protocols to use.
      • initServerSocket

        protected void initServerSocket​(ServerSocket ssocket)
        Configures the given SSL server socket with the requested cipher suites, protocol versions, and need for client authentication