javax.net.ssl

Class SSLServerSocket


public abstract class SSLServerSocket
extends ServerSocket

A server socket that allows clients to connect via the SSL protocol.

Constructor Summary

SSLServerSocket()
Constructor that simply sets the implementation.
SSLServerSocket(int port)
Creates a server socket and binds it to the specified port.
SSLServerSocket(int port, int backlog)
Creates a server socket and binds it to the specified port.
SSLServerSocket(int port, int backlog, InetAddress bindAddress)
Creates a server socket and binds it to the specified port.

Method Summary

abstract boolean
getEnableSessionCreation()
Returns whether or not sessions will be created, i.e., whether or not this server socket will allow SSL session resumption.
abstract String[]
getEnabledCipherSuites()
Returns the list of cihper suites that are currently enabled in this server socket.
abstract String[]
getEnabledProtocols()
Returns the list of enabled protocols, such as "SSLv3" and "TLSv1".
abstract boolean
getNeedClientAuth()
Returns whether or not this server socket will require clients to authenticate themselves, such as through a certificate.
abstract String[]
getSupportedCipherSuites()
Returns a list of cipher suites that this server socket supports.
abstract String[]
getSupportedProtocols()
Returns a list of SSL protocols supported by this server socket.
abstract boolean
getUseClientMode()
Returns whether or not sockets accepted by this server socket will do their handshake as the client-side.
abstract boolean
getWantClientAuth()
Returns whether or not this socket will ask for, but not require, that connecting clients authenticate themselves.
abstract void
setEnableSessionCreation(boolean enabled)
Sets whether or not sessions will be created.
abstract void
setEnabledCipherSuites(String[] suites)
Sets the list enabled cipher suites.
abstract void
setEnabledProtocols(String[] protocols)
Sets the list of enabled protocols.
abstract void
setNeedClientAuth(boolean needAuth)
Enabled or disables the requirement that clients authenticate themselves.
abstract void
setUseClientMode(boolean clientMode)
Sets whether or not sockets accepted by this server socket will be created in client mode.
abstract void
setWantClientAuth(boolean wantAuth)
Sets whether or not this server socket will want client authentication.

Methods inherited from class java.net.ServerSocket

accept, bind, bind, close, getChannel, getInetAddress, getLocalPort, getLocalSocketAddress, getReceiveBufferSize, getReuseAddress, getSoTimeout, implAccept, isBound, isClosed, setReceiveBufferSize, setReuseAddress, setSoTimeout, setSocketFactory, toString

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

SSLServerSocket

protected SSLServerSocket()
            throws IOException
Constructor that simply sets the implementation.
Throws:
IOException - If an error occurs

SSLServerSocket

protected SSLServerSocket(int port)
            throws IOException
Creates a server socket and binds it to the specified port. If the port number is 0, a random free port will be chosen. The pending connection queue on this socket will be set to 50.
Parameters:
port - The port number to bind to
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkListen method doesn't allow the operation

SSLServerSocket

protected SSLServerSocket(int port,
                          int backlog)
            throws IOException
Creates a server socket and binds it to the specified port. If the port number is 0, a random free port will be chosen. The pending connection queue on this socket will be set to the value passed as arg2.
Parameters:
port - The port number to bind to
backlog - The length of the pending connection queue
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkListen method doesn't allow the operation

SSLServerSocket

protected SSLServerSocket(int port,
                          int backlog,
                          InetAddress bindAddress)
            throws IOException
Creates a server socket and binds it to the specified port. If the port number is 0, a random free port will be chosen. The pending connection queue on this socket will be set to the value passed as backlog. The third argument specifies a particular local address to bind t or null to bind to all local address.
Parameters:
port - The port number to bind to
backlog - The length of the pending connection queue
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkListen method doesn't allow the operation
Since:
1.1

Method Details

getEnableSessionCreation

public abstract boolean getEnableSessionCreation()
Returns whether or not sessions will be created, i.e., whether or not this server socket will allow SSL session resumption.
Returns:
True if sessions will be created.

getEnabledCipherSuites

public abstract String[] getEnabledCipherSuites()
Returns the list of cihper suites that are currently enabled in this server socket. Sockets accepted by this server socket will only have these suites enabled.
Returns:
The enabled cipher suites.

getEnabledProtocols

public abstract String[] getEnabledProtocols()
Returns the list of enabled protocols, such as "SSLv3" and "TLSv1".
Returns:
The enabled protocols.

getNeedClientAuth

public abstract boolean getNeedClientAuth()
Returns whether or not this server socket will require clients to authenticate themselves, such as through a certificate.
Returns:
True if clients must authenticate themselves.

getSupportedCipherSuites

public abstract String[] getSupportedCipherSuites()
Returns a list of cipher suites that this server socket supports.
Returns:
The list of supported suites.

getSupportedProtocols

public abstract String[] getSupportedProtocols()
Returns a list of SSL protocols supported by this server socket.
Returns:
The list of supported protocols.

getUseClientMode

public abstract boolean getUseClientMode()
Returns whether or not sockets accepted by this server socket will do their handshake as the client-side. The default is false.
Returns:
True if client mode will be used.

getWantClientAuth

public abstract boolean getWantClientAuth()
Returns whether or not this socket will ask for, but not require, that connecting clients authenticate themselves. Clients that do not provide authentication they will still be allowed to connect.
Returns:
True if this server socket wants client authentication.

setEnableSessionCreation

public abstract void setEnableSessionCreation(boolean enabled)
Sets whether or not sessions will be created.
Parameters:
enabled - The new enabled value.

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String[] suites)
Sets the list enabled cipher suites.
Parameters:
suites - The cipher suites to enable.

setEnabledProtocols

public abstract void setEnabledProtocols(String[] protocols)
Sets the list of enabled protocols.
Parameters:
protocols - The list of protocols to enable.

setNeedClientAuth

public abstract void setNeedClientAuth(boolean needAuth)
Enabled or disables the requirement that clients authenticate themselves. When this is set to true, connections will be rejected if connecting clients do not provide proper authentication.
Parameters:
needAuth - The new need auth value.

setUseClientMode

public abstract void setUseClientMode(boolean clientMode)
Sets whether or not sockets accepted by this server socket will be created in client mode.
Parameters:
clientMode - The new client mode value.

setWantClientAuth

public abstract void setWantClientAuth(boolean wantAuth)
Sets whether or not this server socket will want client authentication.
Parameters:
wantAuth - The new want auth value.

SSLServerSocket.java -- a server socket for SSL connections. Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.