public class Socks5ClientConnector extends AbstractClientProxyConnector
AbstractClientProxyConnector
to connect through a SOCKS5 proxy.Modifier and Type | Class and Description |
---|---|
private static class |
Socks5ClientConnector.ProtocolState |
private static class |
Socks5ClientConnector.SocksAuthenticationMethod
Authentication methods for SOCKS5.
|
private class |
Socks5ClientConnector.SocksBasicAuthentication |
private class |
Socks5ClientConnector.SocksGssApiAuthentication |
Modifier and Type | Field and Description |
---|---|
private byte[] |
authenticationProposals |
private AuthenticationHandler<org.apache.sshd.common.util.buffer.Buffer,org.apache.sshd.common.util.buffer.Buffer> |
authenticator |
private org.ietf.jgss.GSSContext |
context |
private static byte |
SOCKS_ADDRESS_FQDN |
private static byte |
SOCKS_ADDRESS_IPv4 |
private static byte |
SOCKS_ADDRESS_IPv6 |
private static byte |
SOCKS_CMD_CONNECT |
private static byte |
SOCKS_REPLY_ADDRESS_UNSUPPORTED |
private static byte |
SOCKS_REPLY_COMMAND_UNSUPPORTED |
private static byte |
SOCKS_REPLY_CONNECTION_REFUSED |
private static byte |
SOCKS_REPLY_FAILURE |
private static byte |
SOCKS_REPLY_FORBIDDEN |
private static byte |
SOCKS_REPLY_HOST_UNREACHABLE |
private static byte |
SOCKS_REPLY_NETWORK_UNREACHABLE |
private static byte |
SOCKS_REPLY_SUCCESS |
private static byte |
SOCKS_REPLY_TTL_EXPIRED |
private static byte |
SOCKS_VERSION_5 |
private Socks5ClientConnector.ProtocolState |
state |
proxyAddress, proxyPassword, proxyUser, remoteAddress
TIMEOUT_PROPERTY
Constructor and Description |
---|
Socks5ClientConnector(java.net.InetSocketAddress proxyAddress,
java.net.InetSocketAddress remoteAddress)
Creates a new
Socks5ClientConnector . |
Socks5ClientConnector(java.net.InetSocketAddress proxyAddress,
java.net.InetSocketAddress remoteAddress,
java.lang.String proxyUser,
char[] proxyPassword)
Creates a new
Socks5ClientConnector . |
Modifier and Type | Method and Description |
---|---|
private void |
authStep(org.apache.sshd.common.io.IoSession session,
org.apache.sshd.common.util.buffer.Buffer input) |
private void |
close() |
private void |
doGssApiAuth(org.apache.sshd.common.io.IoSession session) |
private void |
doPasswordAuth(org.apache.sshd.common.io.IoSession session) |
private void |
establishConnection(org.apache.sshd.common.util.buffer.Buffer data) |
private byte[] |
getAuthenticationProposals() |
private Socks5ClientConnector.SocksAuthenticationMethod |
getAuthMethod(byte value) |
private static org.ietf.jgss.GSSContext |
getGSSContext(java.net.InetSocketAddress address) |
private static byte[] |
getRawAddress(java.net.InetSocketAddress address) |
void |
messageReceived(org.apache.sshd.common.io.IoSession session,
org.apache.sshd.common.util.Readable buffer)
Handle a received message.
|
void |
sendClientProxyMetadata(org.apache.sshd.client.session.ClientSession sshSession) |
private void |
sendConnectInfo(org.apache.sshd.common.io.IoSession session) |
private void |
startAuth(org.apache.sshd.common.io.IoSession session) |
private void |
versionCheck(byte version) |
adjustTimeout, clearPassword, getTimeout, init, runWhenDone, setDone
private static final byte SOCKS_VERSION_5
private static final byte SOCKS_CMD_CONNECT
private static final byte SOCKS_ADDRESS_IPv4
private static final byte SOCKS_ADDRESS_FQDN
private static final byte SOCKS_ADDRESS_IPv6
private static final byte SOCKS_REPLY_SUCCESS
private static final byte SOCKS_REPLY_FAILURE
private static final byte SOCKS_REPLY_FORBIDDEN
private static final byte SOCKS_REPLY_NETWORK_UNREACHABLE
private static final byte SOCKS_REPLY_HOST_UNREACHABLE
private static final byte SOCKS_REPLY_CONNECTION_REFUSED
private static final byte SOCKS_REPLY_TTL_EXPIRED
private static final byte SOCKS_REPLY_COMMAND_UNSUPPORTED
private static final byte SOCKS_REPLY_ADDRESS_UNSUPPORTED
private Socks5ClientConnector.ProtocolState state
private AuthenticationHandler<org.apache.sshd.common.util.buffer.Buffer,org.apache.sshd.common.util.buffer.Buffer> authenticator
private org.ietf.jgss.GSSContext context
private byte[] authenticationProposals
public Socks5ClientConnector(@NonNull java.net.InetSocketAddress proxyAddress, @NonNull java.net.InetSocketAddress remoteAddress)
Socks5ClientConnector
. The connector supports
anonymous connections as well as username-password or Kerberos5 (GSS-API)
authentication.proxyAddress
- of the proxy server we're connecting toremoteAddress
- of the target server to connect topublic Socks5ClientConnector(@NonNull java.net.InetSocketAddress proxyAddress, @NonNull java.net.InetSocketAddress remoteAddress, java.lang.String proxyUser, char[] proxyPassword)
Socks5ClientConnector
. The connector supports
anonymous connections as well as username-password or Kerberos5 (GSS-API)
authentication.proxyAddress
- of the proxy server we're connecting toremoteAddress
- of the target server to connect toproxyUser
- to authenticate at the proxy withproxyPassword
- to authenticate at the proxy withpublic void sendClientProxyMetadata(org.apache.sshd.client.session.ClientSession sshSession) throws java.lang.Exception
java.lang.Exception
private byte[] getAuthenticationProposals()
private void sendConnectInfo(org.apache.sshd.common.io.IoSession session) throws java.lang.Exception
java.lang.Exception
private void doPasswordAuth(org.apache.sshd.common.io.IoSession session) throws java.lang.Exception
java.lang.Exception
private void doGssApiAuth(org.apache.sshd.common.io.IoSession session) throws java.lang.Exception
java.lang.Exception
private void close()
private void startAuth(org.apache.sshd.common.io.IoSession session) throws java.lang.Exception
java.lang.Exception
private void authStep(org.apache.sshd.common.io.IoSession session, org.apache.sshd.common.util.buffer.Buffer input) throws java.lang.Exception
java.lang.Exception
private void establishConnection(org.apache.sshd.common.util.buffer.Buffer data) throws java.lang.Exception
java.lang.Exception
public void messageReceived(org.apache.sshd.common.io.IoSession session, org.apache.sshd.common.util.Readable buffer) throws java.lang.Exception
StatefulProxyConnector
session
- to use for writing databuffer
- received datajava.lang.Exception
- if data cannot be read, or the connection attempt failsprivate void versionCheck(byte version) throws java.lang.Exception
java.lang.Exception
private Socks5ClientConnector.SocksAuthenticationMethod getAuthMethod(byte value)
private static byte[] getRawAddress(@NonNull java.net.InetSocketAddress address)
private static org.ietf.jgss.GSSContext getGSSContext(@NonNull java.net.InetSocketAddress address)