Class HttpProxyHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.channel.ChannelDuplexHandler
io.netty.handler.proxy.ProxyHandler
io.netty.handler.proxy.HttpProxyHandler
- All Implemented Interfaces:
ChannelHandler, ChannelInboundHandler, ChannelOutboundHandler
Handler that establishes a blind forwarding proxy tunnel using
HTTP/1.1 CONNECT request. It can be used to
establish plaintext or secure tunnels.
HTTP users who need to connect to a message-forwarding HTTP proxy agent instead of a tunneling proxy should not use this handler.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classstatic final classSpecific case of a connection failure, which may include headers from the proxy.Nested classes/interfaces inherited from interface ChannelHandler
ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final java.lang.Stringprivate final java.lang.CharSequenceprivate final HttpProxyHandler.HttpClientCodecWrapperprivate final booleanprivate HttpHeadersprivate final HttpHeadersprivate final java.lang.Stringprivate static final java.lang.Stringprivate HttpResponseStatusprivate final java.lang.Stringprivate final booleanFields inherited from class ProxyHandler
AUTH_NONE -
Constructor Summary
ConstructorsConstructorDescriptionHttpProxyHandler(java.net.SocketAddress proxyAddress) HttpProxyHandler(java.net.SocketAddress proxyAddress, HttpHeaders headers) HttpProxyHandler(java.net.SocketAddress proxyAddress, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader) HttpProxyHandler(java.net.SocketAddress proxyAddress, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader, boolean validateInitialHeaders) HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password) HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password, HttpHeaders headers) HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader) HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader, boolean validateInitialHeaders) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdds the codec handlers required to communicate with the proxy server.java.lang.StringReturns the name of the authentication scheme in use.protected booleanhandleResponse(ChannelHandlerContext ctx, java.lang.Object response) Handles the message received from the proxy server.protected java.lang.ObjectReturns a new message that is sent at first time when the connection to the proxy server has been established.java.lang.Stringpassword()java.lang.Stringprotocol()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).java.lang.Stringusername()Methods inherited from class ProxyHandler
channelActive, channelInactive, channelRead, channelReadComplete, connect, connectFuture, connectTimeoutMillis, destinationAddress, exceptionCaught, exceptionMessage, flush, handlerAdded, handlerRemoved, 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, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
PROTOCOL
private static final java.lang.String PROTOCOL- See Also:
-
AUTH_BASIC
private static final java.lang.String AUTH_BASIC- See Also:
-
codecWrapper
-
username
private final java.lang.String username -
password
private final java.lang.String password -
authorization
private final java.lang.CharSequence authorization -
outboundHeaders
-
ignoreDefaultPortsInConnectHostHeader
private final boolean ignoreDefaultPortsInConnectHostHeader -
validateInitialHeaders
private final boolean validateInitialHeaders -
status
-
inboundHeaders
-
-
Constructor Details
-
HttpProxyHandler
public HttpProxyHandler(java.net.SocketAddress proxyAddress) -
HttpProxyHandler
-
HttpProxyHandler
public HttpProxyHandler(java.net.SocketAddress proxyAddress, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader) -
HttpProxyHandler
public HttpProxyHandler(java.net.SocketAddress proxyAddress, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader, boolean validateInitialHeaders) -
HttpProxyHandler
public HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password) -
HttpProxyHandler
public HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password, HttpHeaders headers) -
HttpProxyHandler
public HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader) -
HttpProxyHandler
public HttpProxyHandler(java.net.SocketAddress proxyAddress, java.lang.String username, java.lang.String password, HttpHeaders headers, boolean ignoreDefaultPortsInConnectHostHeader, boolean validateInitialHeaders)
-
-
Method Details
-
protocol
public java.lang.String protocol()Description copied from class:ProxyHandlerReturns the name of the proxy protocol in use.- Specified by:
protocolin classProxyHandler
-
authScheme
public java.lang.String authScheme()Description copied from class:ProxyHandlerReturns the name of the authentication scheme in use.- Specified by:
authSchemein classProxyHandler
-
username
public java.lang.String username() -
password
public java.lang.String password() -
addCodec
Description copied from class:ProxyHandlerAdds the codec handlers required to communicate with the proxy server.- Specified by:
addCodecin classProxyHandler- Throws:
java.lang.Exception
-
removeEncoder
Description copied from class:ProxyHandlerRemoves the encoders added inProxyHandler.addCodec(ChannelHandlerContext).- Specified by:
removeEncoderin classProxyHandler- Throws:
java.lang.Exception
-
removeDecoder
Description copied from class:ProxyHandlerRemoves the decoders added inProxyHandler.addCodec(ChannelHandlerContext).- Specified by:
removeDecoderin classProxyHandler- Throws:
java.lang.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:
java.lang.Exception
-
handleResponse
protected boolean handleResponse(ChannelHandlerContext ctx, java.lang.Object response) throws java.lang.Exception 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:
java.lang.Exception
-