@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class SOCKSProxySocketFactory extends javax.net.SocketFactory
SSLSocketFactory
instance when creating the
SOCKSProxySocketFactory
), in which case the data will still be
protected from the client to that target server, and anyone observing the
communication between the client and the SOCKS proxy, or between the
SOCKS proxy and the target server, would not be able to decipher that
communication.
final String socksProxyServerAddress = "socks-proxy.example.com"; final int socksProxyServerPort = 1080; final int connectTimeoutMillis = 10_000; final SSLUtil sslUtil = new SSLUtil(new TrustStoreTrustManager("/path/to/trust/store")); final SSLSocketFactory ldapsSocketFactory = sslUtil.createSSLSocketFactory(); final SOCKSProxySocketFactory socksProxySocketFactory = new SOCKSProxySocketFactory(socksProxyServerAddress, socksProxyServerPort, connectTimeoutMillis, ldapsSocketFactory); final String ldapsServerAddress = "ds.example.com"; final int ldapsServerPort = 636; try (LDAPConnection conn = new LDAPConnection(socksProxySocketFactory, ldapsServerAddress, ldapsServerPort)) { // Do something with the connection here. }
Constructor and Description |
---|
SOCKSProxySocketFactory(java.lang.String socksProxyHost,
int socksProxyPort,
int connectTimeoutMillis)
Creates a new instance of this SOCKS socket factory with the provided
settings.
|
SOCKSProxySocketFactory(java.lang.String socksProxyHost,
int socksProxyPort,
int connectTimeoutMillis,
javax.net.ssl.SSLSocketFactory sslSocketFactory)
Creates a new instance of this SOCKS socket factory with the provided
settings.
|
Modifier and Type | Method and Description |
---|---|
java.net.Socket |
createSocket()
Creates an unconnected socket that will use the configured proxy server for
communication.
|
java.net.Socket |
createSocket(java.net.InetAddress host,
int port)
Creates a new socket that is connected to the specified system through the
proxy server.
|
java.net.Socket |
createSocket(java.net.InetAddress host,
int port,
java.net.InetAddress localHost,
int localPort)
Creates a new socket that is connected to the specified system through the
proxy server.
|
java.net.Socket |
createSocket(java.lang.String host,
int port)
Creates a new socket that is connected to the specified system through the
proxy server.
|
java.net.Socket |
createSocket(java.lang.String host,
int port,
java.net.InetAddress localHost,
int localPort)
Creates a new socket that is connected to the specified system through the
proxy server.
|
public SOCKSProxySocketFactory(@NotNull java.lang.String socksProxyHost, int socksProxyPort, int connectTimeoutMillis)
socksProxyHost
- The address of the SOCKS proxy server. It
must not be null
.socksProxyPort
- The port on which the SOCKS proxy is
listening for new connections.connectTimeoutMillis
- The maximum length of time in milliseconds to
wait for a connection to be established. A
value that is less than or equal to zero
indicates that no explicit timeout will be
imposed.public SOCKSProxySocketFactory(@NotNull java.lang.String socksProxyHost, int socksProxyPort, int connectTimeoutMillis, @Nullable javax.net.ssl.SSLSocketFactory sslSocketFactory)
sslSocketFactory
value is null
) or encrypted LDAPS communication (if the provided
sslSocketFactory
value is non-null
).socksProxyHost
- The address of the SOCKS proxy server. It
must not be null
.socksProxyPort
- The port on which the SOCKS proxy is
listening for new connections.connectTimeoutMillis
- The maximum length of time in milliseconds to
wait for a connection to be established. A
value that is less than or equal to zero
indicates that no explicit timeout will be
imposed.sslSocketFactory
- An SSL socket factory that should be used if
communication with the target LDAP server
should be encrypted with TLS. It must be
null
if communication should not be
encrypted, and it must not be null
if
communication should be encrypted with TLS.@NotNull public final java.net.Socket createSocket() throws java.lang.UnsupportedOperationException
createSocket
in class javax.net.SocketFactory
java.lang.UnsupportedOperationException
- If an SSLSocketFactory
has been configured to secure
communication with end servers.@NotNull public final java.net.Socket createSocket(@NotNull java.lang.String host, int port) throws java.io.IOException
createSocket
in class javax.net.SocketFactory
host
- The address of the server to which the socket should be
established. It must not be null
.port
- The port of the server to which the socket should be
established.java.io.IOException
- If a problem is encountered while attempting to
establish the connection.@NotNull public final java.net.Socket createSocket(@NotNull java.lang.String host, int port, @Nullable java.net.InetAddress localHost, int localPort) throws java.io.IOException
createSocket
in class javax.net.SocketFactory
host
- The address of the server to which the socket should be
established. It must not be null
.port
- The port of the server to which the socket should be
established.localHost
- The local address to which the socket should be bound.
It may optionally be null
it may be bound to
any local address.localPort
- The local port to which the socket should be bound.java.io.IOException
- If a problem is encountered while attempting to
establish the connection.@NotNull public final java.net.Socket createSocket(@NotNull java.net.InetAddress host, int port) throws java.io.IOException
createSocket
in class javax.net.SocketFactory
host
- The address of the server to which the socket should be
established. It must not be null
.port
- The port of the server to which the socket should be
established.java.io.IOException
- If a problem is encountered while attempting to
establish the connection.@NotNull public final java.net.Socket createSocket(@NotNull java.net.InetAddress host, int port, @Nullable java.net.InetAddress localHost, int localPort) throws java.io.IOException
createSocket
in class javax.net.SocketFactory
host
- The address of the server to which the socket should be
established. It must not be null
.port
- The port of the server to which the socket should be
established.localHost
- The local address to which the socket should be bound.
It may optionally be null
if it may be bound to
any local address.localPort
- The local port to which the socket should be bound.java.io.IOException
- If a problem is encountered while attempting to
establish the connection.