mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-15 14:11:50 +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) {
|
} catch (e) {
|
||||||
url = new URL('http://' + server);
|
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;
|
server = url.protocol + '//' + url.host;
|
||||||
if (bypass)
|
if (bypass)
|
||||||
bypass = bypass.split(',').map(t => t.trim()).join(',');
|
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();
|
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}) => {
|
it('should authenticate', async ({contextFactory, contextOptions, server}) => {
|
||||||
server.setRoute('/target.html', async (req, res) => {
|
server.setRoute('/target.html', async (req, res) => {
|
||||||
const auth = req.headers['proxy-authorization'];
|
const auth = req.headers['proxy-authorization'];
|
||||||
|
Loading…
Reference in New Issue
Block a user