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, remoteAddressTIMEOUT_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, setDoneprivate 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.Exceptionprivate byte[] getAuthenticationProposals()
private void sendConnectInfo(org.apache.sshd.common.io.IoSession session)
throws java.lang.Exception
java.lang.Exceptionprivate void doPasswordAuth(org.apache.sshd.common.io.IoSession session)
throws java.lang.Exception
java.lang.Exceptionprivate void doGssApiAuth(org.apache.sshd.common.io.IoSession session)
throws java.lang.Exception
java.lang.Exceptionprivate void close()
private void startAuth(org.apache.sshd.common.io.IoSession session)
throws java.lang.Exception
java.lang.Exceptionprivate void authStep(org.apache.sshd.common.io.IoSession session,
org.apache.sshd.common.util.buffer.Buffer input)
throws java.lang.Exception
java.lang.Exceptionprivate void establishConnection(org.apache.sshd.common.util.buffer.Buffer data)
throws java.lang.Exception
java.lang.Exceptionpublic void messageReceived(org.apache.sshd.common.io.IoSession session,
org.apache.sshd.common.util.Readable buffer)
throws java.lang.Exception
StatefulProxyConnectorsession - 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.Exceptionprivate 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)