Skip to content

Commit

Permalink
feat(proxy): throw when socks proxy is used with auth (#5358)
Browse files Browse the repository at this point in the history
  • Loading branch information
dgozman committed Feb 8, 2021
1 parent f35acc2 commit 6d56a11
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/server/browserContext.ts
Expand Up @@ -462,6 +462,10 @@ export function normalizeProxySettings(proxy: types.ProxySettings): types.ProxyS
} catch (e) {
url = new URL('http://' + server);
}
if (url.protocol === 'socks4:' && (proxy.username || proxy.password))
throw new Error(`Socks4 proxy protocol does not support authentication`);
if (url.protocol === 'socks5:' && (proxy.username || proxy.password))
throw new Error(`Browser does not support socks5 proxy authentication`);
server = url.protocol + '//' + url.host;
if (bypass)
bypass = bypass.split(',').map(t => t.trim()).join(',');
Expand Down
16 changes: 16 additions & 0 deletions test/browsercontext-proxy.spec.ts
Expand Up @@ -103,6 +103,22 @@ it('should work with IP:PORT notion', async ({contextFactory, contextOptions, se
await browser.close();
});

it('should throw for socks5 authentication', async ({contextFactory, contextOptions}) => {
const error = await contextFactory({
...contextOptions,
proxy: { server: `socks5://localhost:1234`, username: 'user', password: 'secret' }
}).catch(e => e);
expect(error.message).toContain('Browser does not support socks5 proxy authentication');
});

it('should throw for socks4 authentication', async ({contextFactory, contextOptions}) => {
const error = await contextFactory({
...contextOptions,
proxy: { server: `socks4://localhost:1234`, username: 'user', password: 'secret' }
}).catch(e => e);
expect(error.message).toContain('Socks4 proxy protocol does not support authentication');
});

it('should authenticate', async ({contextFactory, contextOptions, server}) => {
server.setRoute('/target.html', async (req, res) => {
const auth = req.headers['proxy-authorization'];
Expand Down

0 comments on commit 6d56a11

Please sign in to comment.