Given the issue found and documented in OPENIG-4531 (and documented in
OPENIG-4828), the distinction between a ClientHandler and a ReverseProxyHandler is not really explicit enough.
There is documentation that indicates what each does, but I think it needs to be more direct. This is in the javadoc (API) and also in the docs. The key points here are:
- The ReverseProxyHandler supports a route that proxies a request to a protected application.
- The ClientHandler is used as a client to interact with some third-party server. This should not be used as the handler defined in a route, proxying to the protected application (though it is allowed).
Actually, a further note on this, I’ve noticed the docs use ClientHandler as the proxy handler in a few places. Not sure if we want to change this, so close to release?
- the UmaService route in section 12.6 (6.5 docs)
Also, this text (section 14 intro) should probably be changed. I guess prior to 6.5, ClientHandler was relevant, but not any more:
To set up IG to proxy WebSocket traffic, configure the websocket property of ClientHandler or ReverseProxyHandler. By default, IG does not proxy WebSocket traffic. For more information, see ClientHandler(5) in the Configuration Reference and ReverseProxyHandler(5) in the Configuration Reference