Also, the constructors take an explicit authentication context parameter, giving flexibility with respect to how the server socket authenticates itself. That policy flexibility is not exposed through the standard SSLServerSocketFactory API.
System security defaults prevent server sockets from accepting connections if the authentication context has not been given a certificate chain and its matching private key. If the clients of your application support "anonymous" cipher suites, you may be able to configure a server socket to accept those suites.
SSLSocketImpl, SSLServerSocketFactoryImpl
| Modifier and Type | Field and Description |
|---|---|
| private final ReentrantLock | |
| private final SSLConfiguration | |
| private final SSLContextImpl |
| Access | Constructor and Description |
|---|---|
| pack-priv | |
| pack-priv | |
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public Socket | accept()
Overrides java. Listens for a connection to be made to this socket and accepts it. |
| public String[] | getEnabledCipherSuites()
Implements abstract javax. Returns the list of cipher suites which are currently enabled for use by newly accepted connections. |
| public String[] | getEnabledProtocols()
Implements abstract javax. Returns the names of the protocols which are currently enabled for use by the newly accepted connections. |
| public boolean | getEnableSessionCreation()
Implements abstract javax. Returns true if new SSL sessions may be established by the sockets which are created from this server socket. |
| public boolean | getNeedClientAuth()
Implements abstract javax. Returns true if client authentication will be required on
newly |
| public SSLParameters | getSSLParameters()
Overrides javax. Returns the SSLParameters in effect for newly accepted connections. |
| public String[] | getSupportedCipherSuites()
Implements abstract javax. Returns the names of the cipher suites which could be enabled for use on an SSL connection. |
| public String[] | getSupportedProtocols()
Implements abstract javax. Returns the names of the protocols which could be enabled for use. |
| public boolean | getUseClientMode()
Implements abstract javax. Returns true if accepted connections will be in SSL client mode. |
| public boolean | getWantClientAuth()
Implements abstract javax. Returns true if client authentication will be requested on newly accepted server-mode connections. |
| public void | setEnabledCipherSuites(String[] suites)
Implements abstract javax. Sets the cipher suites enabled for use by accepted connections. |
| public void | setEnabledProtocols(String[] protocols)
Implements abstract javax. Controls which particular protocols are enabled for use by accepted connections. |
| public void | setEnableSessionCreation(boolean flag)
Implements abstract javax. Controls whether new SSL sessions may be established by the sockets which are created from this server socket. |
| public void | setNeedClientAuth(boolean need)
Implements abstract javax. Controls whether |
| public void | setSSLParameters(SSLParameters params)
Overrides javax. Applies SSLParameters to newly accepted connections. |
| public void | setUseClientMode(boolean useClientMode)
Implements abstract javax. Controls whether accepted connections are in the (default) SSL server mode, or the SSL client mode. |
| public void | setWantClientAuth(boolean want)
Implements abstract javax. Controls whether |
| public String | toString()
Overrides java. Returns the implementation address and implementation port of
this socket as a |
| serverSocketLock | back to summary |
|---|---|
| private final ReentrantLock serverSocketLock | |
| sslConfig | back to summary |
|---|---|
| private final SSLConfiguration sslConfig | |
| sslContext | back to summary |
|---|---|
| private final SSLContextImpl sslContext | |
| SSLServerSocketImpl | back to summary |
|---|---|
| pack-priv SSLServerSocketImpl(SSLContextImpl sslContext) throws IOException | |
| SSLServerSocketImpl | back to summary |
|---|---|
| pack-priv SSLServerSocketImpl(SSLContextImpl sslContext, int port, int backlog) throws IOException | |
| SSLServerSocketImpl | back to summary |
|---|---|
| pack-priv SSLServerSocketImpl(SSLContextImpl sslContext, int port, int backlog, InetAddress address) throws IOException | |
| accept | back to summary |
|---|---|
| public Socket accept() throws IOException Overrides java. Doc from java. Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made. This method is interruptible in the following circumstances:
| |
| getEnabledCipherSuites | back to summary |
|---|---|
| public String[] getEnabledCipherSuites() Implements abstract javax. Doc from javax. Returns the list of cipher suites which are currently enabled for use by newly accepted connections. If this list has not been explicitly modified, a system-provided default guarantees a minimum quality of service in all enabled cipher suites. Note that even if a suite is enabled, it may never be used. This can occur if the peer does not support it, or its use is restricted, or the requisite certificates (and private keys) for the suite are not available, or an anonymous suite is enabled but authentication is required. The returned array includes cipher suites from the list of standard cipher suite names in the JSSE Cipher Suite Names section of the Java Security Standard Algorithm Names Specification, and may also include other cipher suites that the provider supports.
| |
| getEnabledProtocols | back to summary |
|---|---|
| public String[] getEnabledProtocols() Implements abstract javax. Doc from javax. Returns the names of the protocols which are currently enabled for use by the newly accepted connections. Note that even if a protocol is enabled, it may never be used. This can occur if the peer does not support the protocol, or its use is restricted, or there are no enabled cipher suites supported by the protocol.
| |
| getEnableSessionCreation | back to summary |
|---|---|
| public boolean getEnableSessionCreation() Implements abstract javax. Doc from javax. Returns true if new SSL sessions may be established by the sockets which are created from this server socket.
| |
| getNeedClientAuth | back to summary |
|---|---|
| public boolean getNeedClientAuth() Implements abstract javax. Doc from javax. Returns true if client authentication will be required on
newly
The initial inherited setting may be overridden by calling
| |
| getSSLParameters | back to summary |
|---|---|
| public SSLParameters getSSLParameters() Overrides javax. Doc from javax. Returns the SSLParameters in effect for newly accepted connections. The ciphersuites and protocols of the returned SSLParameters are always non-null.
| |
| getSupportedCipherSuites | back to summary |
|---|---|
| public String[] getSupportedCipherSuites() Implements abstract javax. Doc from javax. Returns the names of the cipher suites which could be enabled for use on an SSL connection. Normally, only a subset of these will actually be enabled by default, since this list may include cipher suites which do not meet quality of service requirements for those defaults. Such cipher suites are useful in specialized applications. The returned array includes cipher suites from the list of standard cipher suite names in the JSSE Cipher Suite Names section of the Java Security Standard Algorithm Names Specification, and may also include other cipher suites that the provider supports.
| |
| getSupportedProtocols | back to summary |
|---|---|
| public String[] getSupportedProtocols() Implements abstract javax. Doc from javax. Returns the names of the protocols which could be enabled for use.
| |
| getUseClientMode | back to summary |
|---|---|
| public boolean getUseClientMode() Implements abstract javax. Doc from javax. Returns true if accepted connections will be in SSL client mode.
| |
| getWantClientAuth | back to summary |
|---|---|
| public boolean getWantClientAuth() Implements abstract javax. Doc from javax. Returns true if client authentication will be requested on newly accepted server-mode connections.
The initial inherited setting may be overridden by calling
| |
| setEnabledCipherSuites | back to summary |
|---|---|
| public void setEnabledCipherSuites(String[] suites) Implements abstract javax. Doc from javax. Sets the cipher suites enabled for use by accepted connections.
The cipher suites must have been listed by getSupportedCipherSuites()
as being supported. Following a successful call to this method,
only suites listed in the Suites that require authentication information which is not available in this ServerSocket's authentication context will not be used in any case, even if they are enabled. Note that the standard list of cipher suite names may be found in the JSSE Cipher Suite Names section of the Java Security Standard Algorithm Names Specification. Providers may support cipher suite names not found in this list or might not use the recommended name for a certain cipher suite.
| |
| setEnabledProtocols | back to summary |
|---|---|
| public void setEnabledProtocols(String[] protocols) Implements abstract javax. Doc from javax. Controls which particular protocols are enabled for use by accepted connections.
The protocols must have been listed by
getSupportedProtocols() as being supported.
Following a successful call to this method, only protocols listed
in the
| |
| setEnableSessionCreation | back to summary |
|---|---|
| public void setEnableSessionCreation(boolean flag) Implements abstract javax. Doc from javax. Controls whether new SSL sessions may be established by the sockets which are created from this server socket.
| |
| setNeedClientAuth | back to summary |
|---|---|
| public void setNeedClientAuth(boolean need) Implements abstract javax. Doc from javax. Controls whether A socket's client authentication setting is one of the following:
Unlike
Calling this method overrides any previous setting made by
this method or
The initial inherited setting may be overridden by calling
| |
| setSSLParameters | back to summary |
|---|---|
| public void setSSLParameters(SSLParameters params) Overrides javax. Doc from javax. Applies SSLParameters to newly accepted connections. This means:
| |
| setUseClientMode | back to summary |
|---|---|
| public void setUseClientMode(boolean useClientMode) Implements abstract javax. Doc from javax. Controls whether accepted connections are in the (default) SSL server mode, or the SSL client mode. Servers normally authenticate themselves, and clients are not required to do so. In rare cases, TCP servers need to act in the SSL client mode on newly accepted connections. For example, FTP clients acquire server sockets and listen there for reverse connections from the server. An FTP client would use an SSLServerSocket in "client" mode to accept the reverse connection while the FTP server uses an SSLSocket with "client" mode disabled to initiate the connection. During the resulting handshake, existing SSL sessions may be reused.
| |
| setWantClientAuth | back to summary |
|---|---|
| public void setWantClientAuth(boolean want) Implements abstract javax. Doc from javax. Controls whether A socket's client authentication setting is one of the following:
Unlike
Calling this method overrides any previous setting made by
this method or
The initial inherited setting may be overridden by calling
| |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Doc from java. Returns the implementation address and implementation port of
this socket as a
| |