This repository was archived by the owner on Jun 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 46
This repository was archived by the owner on Jun 11, 2024. It is now read-only.
Non Proxy Host still being forwarded to Proxy #364
Copy link
Copy link
Open
Description
Describe the bug
In version 2.1.1 (2.1.2 missing execution files) The Non Proxy Host specified to the proxy causes an error in browserup-proxy followed by the traffic being forwarded to the specified proxyHost. I tested this with creating a sauce connect proxy (https://wiki.saucelabs.com/display/DOCS/Sauce+Connect+Proxy) that points to a created browserup-proxy proxy.
To Reproduce
Steps to reproduce the behavior:
- Add Proxy with these settings:
{httpNonProxyHosts=[saucelabs.com], trustAllServers=[true], httpProxy=[localhost:8080]}
[INFO 2021-02-23T10:21:29,548 com.browserup.bup.proxy.bricks.ProxyResource] (qtp1566099239-36) POST /
[INFO 2021-02-23T10:21:29,549 com.browserup.bup.proxy.bricks.ProxyResource] (qtp1566099239-36) {httpNonProxyHosts=[saucelabs.com], trustAllServers=[true], httpProxy=[localhost:8080]}
[INFO 2021-02-23T10:35:53,325 org.littleshoot.proxy.impl.DefaultHttpProxyServer] (qtp1566099239-36) Starting proxy at address: 0.0.0.0/0.0.0.0:9091
- Start up sauce connect tunnel pointing
--proxyto the newly createdbrowserup-proxyproxy. Eg:sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY --proxy localhost:9091 - See error in runtime logs:
[ERROR 2021-02-23T10:21:30,248 com.browserup.bup.BrowserUpProxyServer] (LittleProxy-0-ClientToProxyWorker-0) The requested URL is not valid. java.net.MalformedURLException: unknown protocol: saucelabs.com
at java.net.URL.<init>(URL.java:679) ~[?:?]
at java.net.URL.<init>(URL.java:568) ~[?:?]
at java.net.URL.<init>(URL.java:515) ~[?:?]
at com.browserup.bup.BrowserUpProxyServer$2.lookupChainedProxies(BrowserUpProxyServer.java:412) [browserup-proxy-core-2.1.1-SNAPSHOT.jar:?]
at org.littleshoot.proxy.impl.ProxyToServerConnection.create(ProxyToServerConnection.java:178) [littleproxy-2.0.0-beta-5.jar:?]
at org.littleshoot.proxy.impl.ClientToProxyConnection.doReadHTTPInitial(ClientToProxyConnection.java:281) [littleproxy-2.0.0-beta-5.jar:?]
at org.littleshoot.proxy.impl.ClientToProxyConnection.readHTTPInitial(ClientToProxyConnection.java:187) [littleproxy-2.0.0-beta-5.jar:?]
at org.littleshoot.proxy.impl.ClientToProxyConnection.readHTTPInitial(ClientToProxyConnection.java:55) [littleproxy-2.0.0-beta-5.jar:?]
at org.littleshoot.proxy.impl.ProxyConnection.readHTTP(ProxyConnection.java:144) [littleproxy-2.0.0-beta-5.jar:?]
at org.littleshoot.proxy.impl.ProxyConnection.read(ProxyConnection.java:122) [littleproxy-2.0.0-beta-5.jar:?]
at org.littleshoot.proxy.impl.ProxyConnection.channelRead0(ProxyConnection.java:582) [littleproxy-2.0.0-beta-5.jar:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at org.littleshoot.proxy.impl.ProxyConnection$RequestReadMonitor.channelRead(ProxyConnection.java:709) [littleproxy-2.0.0-beta-5.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at org.littleshoot.proxy.impl.ProxyConnection$BytesReadMonitor.channelRead(ProxyConnection.java:686) [littleproxy-2.0.0-beta-5.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-all-4.1.50.Final.jar:4.1.50.Final]
at java.lang.Thread.run(Thread.java:832) [?:?]
Expected behavior
Would expect the nonProxyHosts config to not generate errors and not forward traffic to proxy host.
Please complete the following information:
- OS: Mac 10.15.7
- Commandline
- sauce connect version:
Sauce Connect 4.6.4, build 5309 21ce484
Additional Context
May be related to #258
Metadata
Metadata
Assignees
Labels
No labels