javax.net.ssl

Class SSLSocket

Known Direct Subclasses:
SSLSocketImpl

public abstract class SSLSocket
extends Socket

A socket that communicates over the secure socket layer protocol.

Constructor Summary

SSLSocket()
Initializes a new instance of Socket object without connecting to a remote host.
SSLSocket(String host, int port)
Initializes a new instance of Socket and connects to the hostname and port specified as arguments.
SSLSocket(String host, int port, InetAddress localAddr, int localPort)
Initializes a new instance of Socket that connects to the named host on the specified port and binds to the specified local address and port.
SSLSocket(InetAddress address, int port)
Initializes a new instance of Socket and connects to the address and port number specified as arguments.
SSLSocket(InetAddress address, int port, InetAddress localAddr, int localPort)
Initializes a new instance of Socket and connects to the address and port number specified as arguments, plus binds to the specified local address and port.

Method Summary

abstract void
addHandshakeCompletedListener(HandshakeCompletedListener listener)
Adds a handshake completed listener that wants to be notified when the SSL handshake completes.
abstract boolean
getEnableSessionCreation()
Returns whether or not sessions will be created by this socket, and thus allow sessions to be continued later.
abstract String[]
getEnabledCipherSuites()
Returns the list of currently enabled cipher suites.
abstract String[]
getEnabledProtocols()
Returns the list of enabled SSL protocols.
abstract boolean
getNeedClientAuth()
Returns whether or not this socket will require connecting clients to authenticate themselves.
abstract SSLSession
getSession()
Returns this socket's session object.
abstract String[]
getSupportedCipherSuites()
Returns the list of cipher suites supported by this socket.
abstract String[]
getSupportedProtocols()
Returns the list of protocols supported by this socket.
abstract boolean
getUseClientMode()
Returns whether or not this socket will connect in client mode.
abstract boolean
getWantClientAuth()
Returns whether or not this socket will request that connecting clients authenticate themselves.
abstract void
removeHandshakeCompletedListener(HandshakeCompletedListener listener)
Removes a handshake listener from this socket.
abstract void
setEnableSessionCreation(boolean enable)
Sets whether or not sessions will be created by this socket.
abstract void
setEnabledCipherSuites(String[] suites)
Sets the list of enabled cipher suites.
abstract void
setEnabledProtocols(String[] protocols)
Sets the list of enabled SSL protocols.
abstract void
setNeedClientAuth(boolean needAuth)
Sets whether or not this socket will require connecting clients to authenticate themselves.
abstract void
setUseClientMode(boolean clientMode)
Sets whether or not this socket will connect in client mode.
abstract void
setWantClientAuth(boolean wantAuth)
Sets whether or not this socket will request that connecting clients authenticate themselves.
abstract void
startHandshake()
Explicitly begins the handshake, or, if the handshake has already completed, requests that the handshake be repeated.

Methods inherited from class java.net.Socket

bind, close, connect, connect, getChannel, getInetAddress, getInputStream, getKeepAlive, getLocalAddress, getLocalPort, getLocalSocketAddress, getOOBInline, getOutputStream, getPort, getReceiveBufferSize, getRemoteSocketAddress, getReuseAddress, getSendBufferSize, getSoLinger, getSoTimeout, getTcpNoDelay, getTrafficClass, isBound, isClosed, isConnected, isInputShutdown, isOutputShutdown, sendUrgentData, setKeepAlive, setOOBInline, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoLinger, setSoTimeout, setSocketImplFactory, setTcpNoDelay, setTrafficClass, shutdownInput, shutdownOutput, toString

Methods inherited from class java.lang.Object

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

Constructor Details

SSLSocket

protected SSLSocket()
Initializes a new instance of Socket object without connecting to a remote host. This useful for subclasses of socket that might want this behavior.
Since:
1.1

SSLSocket

protected SSLSocket(String host,
                    int port)
            throws IOException,
                   UnknownHostException
Initializes a new instance of Socket and connects to the hostname and port specified as arguments.
Parameters:
host - The name of the host to connect to
port - The port number to connect to
Throws:
UnknownHostException - If the hostname cannot be resolved to a network address.
IOException - If an error occurs
SecurityException - If a security manager exists and its checkConnect method doesn't allow the operation

SSLSocket

protected SSLSocket(String host,
                    int port,
                    InetAddress localAddr,
                    int localPort)
            throws IOException,
                   UnknownHostException
Initializes a new instance of Socket that connects to the named host on the specified port and binds to the specified local address and port.
Parameters:
host - The name of the remote host to connect to.
port - The remote port to connect to.
localAddr - The local address to bind to.
localPort - The local port to bind to.
Throws:
SecurityException - If the SecurityManager exists and does not allow a connection to the specified host/port or binding to the specified local host/port.
IOException - If a connection error occurs.
Since:
1.1

SSLSocket

protected SSLSocket(InetAddress address,
                    int port)
            throws IOException
Initializes a new instance of Socket and connects to the address and port number specified as arguments.
Parameters:
address - The address to connect to
port - The port number to connect to
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkConnect method doesn't allow the operation

SSLSocket

protected SSLSocket(InetAddress address,
                    int port,
                    InetAddress localAddr,
                    int localPort)
            throws IOException
Initializes a new instance of Socket and connects to the address and port number specified as arguments, plus binds to the specified local address and port.
Parameters:
address - The remote address to connect to
port - The remote port to connect to
localAddr - The local address to connect to
localPort - The local port to connect to
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkConnect method doesn't allow the operation
Since:
1.1

Method Details

addHandshakeCompletedListener

public abstract void addHandshakeCompletedListener(HandshakeCompletedListener listener)
Adds a handshake completed listener that wants to be notified when the SSL handshake completes.
Parameters:
listener - The listener to add.

getEnableSessionCreation

public abstract boolean getEnableSessionCreation()
Returns whether or not sessions will be created by this socket, and thus allow sessions to be continued later.
Returns:
Whether or not sessions will be created.

getEnabledCipherSuites

public abstract String[] getEnabledCipherSuites()
Returns the list of currently enabled cipher suites.
Returns:
The list of enabled cipher suites.

getEnabledProtocols

public abstract String[] getEnabledProtocols()
Returns the list of enabled SSL protocols.
Returns:
The list of enabled protocols.

getNeedClientAuth

public abstract boolean getNeedClientAuth()
Returns whether or not this socket will require connecting clients to authenticate themselves. This value only applies to sockets in server mode.
Returns:
Whether or not this socket requires client authentication.

getSession

public abstract SSLSession getSession()
Returns this socket's session object.
Returns:
The session.

getSupportedCipherSuites

public abstract String[] getSupportedCipherSuites()
Returns the list of cipher suites supported by this socket.
Returns:
The list of supported cipher suites.

getSupportedProtocols

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

getUseClientMode

public abstract boolean getUseClientMode()
Returns whether or not this socket will connect in client mode.
Returns:
True if this is a client socket.

getWantClientAuth

public abstract boolean getWantClientAuth()
Returns whether or not this socket will request that connecting clients authenticate themselves. This value only applies to sockets in server mode.
Returns:
The want client auth value.

removeHandshakeCompletedListener

public abstract void removeHandshakeCompletedListener(HandshakeCompletedListener listener)
Removes a handshake listener from this socket.
Parameters:
listener - The listener to remove.

setEnableSessionCreation

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

setEnabledCipherSuites

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

setEnabledProtocols

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

setNeedClientAuth

public abstract void setNeedClientAuth(boolean needAuth)
Sets whether or not this socket will require connecting clients to authenticate themselves. This value only applies to sockets in server mode.
Parameters:
needAuth - The new need auth value.

setUseClientMode

public abstract void setUseClientMode(boolean clientMode)
Sets whether or not this socket will connect in client mode.
Parameters:
clientMode - The new value.

setWantClientAuth

public abstract void setWantClientAuth(boolean wantAuth)
Sets whether or not this socket will request that connecting clients authenticate themselves. This value only applies to sockets in server mode.
Parameters:
wantAuth - The new want auth value.

startHandshake

public abstract void startHandshake()
            throws IOException
Explicitly begins the handshake, or, if the handshake has already completed, requests that the handshake be repeated.

The handshake will begin implicitly when any attempt to read or write to the socket is made.

Throws:
IOException - If an I/O or SSL error occurs.

SSLSocket.java -- an SSL client socket. 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.