Class Socks5ProxyHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.channel.ChannelDuplexHandler
io.netty.handler.proxy.ProxyHandler
io.netty.handler.proxy.Socks5ProxyHandler
- All Implemented Interfaces:
ChannelHandler, ChannelInboundHandler, ChannelOutboundHandler
Handler that establishes a blind forwarding proxy tunnel using
SOCKS Protocol Version 5.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ChannelHandler
ChannelHandler.Sharable -
Constructor Summary
ConstructorsConstructorDescriptionSocks5ProxyHandler(SocketAddress proxyAddress) Socks5ProxyHandler(SocketAddress proxyAddress, byte privateAuthMethod, byte[] privateToken, Socks5ClientEncoder customEncoder) Creates a new SOCKS5 proxy handler with a custom private authentication method.Socks5ProxyHandler(SocketAddress proxyAddress, String username, String password) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdds the codec handlers required to communicate with the proxy server.Returns the name of the authentication scheme in use.protected booleanhandleResponse(ChannelHandlerContext ctx, Object response) Handles the message received from the proxy server.protected ObjectReturns a new message that is sent at first time when the connection to the proxy server has been established.password()protocol()Returns the name of the proxy protocol in use.protected voidRemoves the decoders added inProxyHandler.addCodec(ChannelHandlerContext).protected voidRemoves the encoders added inProxyHandler.addCodec(ChannelHandlerContext).username()Methods inherited from class ProxyHandler
channelActive, channelInactive, channelRead, channelReadComplete, connect, connectFuture, connectTimeoutMillis, destinationAddress, exceptionCaught, exceptionMessage, flush, handlerAdded, isConnected, proxyAddress, sendToProxyServer, setConnectTimeoutMillis, writeMethods inherited from class ChannelDuplexHandler
bind, close, deregister, disconnect, readMethods inherited from class ChannelInboundHandlerAdapter
channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggeredMethods inherited from class ChannelHandlerAdapter
ensureNotSharable, handlerRemoved, isSharableMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ChannelHandler
handlerRemoved
-
Constructor Details
-
Socks5ProxyHandler
-
Socks5ProxyHandler
-
Socks5ProxyHandler
public Socks5ProxyHandler(SocketAddress proxyAddress, byte privateAuthMethod, byte[] privateToken, Socks5ClientEncoder customEncoder) Creates a new SOCKS5 proxy handler with a custom private authentication method.- Parameters:
proxyAddress- The address of the SOCKS5 proxy serverprivateAuthMethod- The private authentication method code (must be in range 0x80-0xFE)privateToken- The token to use for private authenticationcustomEncoder- The custom encoder to use for encoding SOCKS5 messages, ifnulltheSocks5ClientEncoder.DEFAULTwill be used- Throws:
IllegalArgumentException- If privateAuthMethod is not in the valid range
-
-
Method Details
-
protocol
Description copied from class:ProxyHandlerReturns the name of the proxy protocol in use.- Specified by:
protocolin classProxyHandler
-
authScheme
Description copied from class:ProxyHandlerReturns the name of the authentication scheme in use.- Specified by:
authSchemein classProxyHandler
-
username
-
password
-
addCodec
Description copied from class:ProxyHandlerAdds the codec handlers required to communicate with the proxy server.- Specified by:
addCodecin classProxyHandler- Throws:
Exception
-
removeEncoder
Description copied from class:ProxyHandlerRemoves the encoders added inProxyHandler.addCodec(ChannelHandlerContext).- Specified by:
removeEncoderin classProxyHandler- Throws:
Exception
-
removeDecoder
Description copied from class:ProxyHandlerRemoves the decoders added inProxyHandler.addCodec(ChannelHandlerContext).- Specified by:
removeDecoderin classProxyHandler- Throws:
Exception
-
newInitialMessage
Description copied from class:ProxyHandlerReturns a new message that is sent at first time when the connection to the proxy server has been established.- Specified by:
newInitialMessagein classProxyHandler- Returns:
- the initial message, or
nullif the proxy server is expected to send the first message instead - Throws:
Exception
-
handleResponse
Description copied from class:ProxyHandlerHandles the message received from the proxy server.- Specified by:
handleResponsein classProxyHandler- Returns:
trueif the connection to the destination has been established,falseif the connection to the destination has not been established and more messages are expected from the proxy server- Throws:
Exception
-