mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-14 21:53:35 +03:00
feat(proxy): throw when socks proxy is used with auth (#5358)
This commit is contained in:
parent
f35acc258b
commit
6d56a110ca
@ -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(',');
|
||||
|
@ -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'];
|
||||
|
Loading…
Reference in New Issue
Block a user