From df2bf8b8414e331dd4dee1eba848e28623f96f16 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 31 Aug 2016 09:52:19 +0200 Subject: [PATCH] http.proxyAuthorization setting fixes #6480 --- src/vs/platform/request/common/request.ts | 6 ++++++ src/vs/platform/request/node/requestService.ts | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/vs/platform/request/common/request.ts b/src/vs/platform/request/common/request.ts index dad7a07efb0..47ac2689c27 100644 --- a/src/vs/platform/request/common/request.ts +++ b/src/vs/platform/request/common/request.ts @@ -23,6 +23,7 @@ export interface IHTTPConfiguration { http?: { proxy?: string; proxyStrictSSL?: boolean; + proxyAuthorization?: string; }; } @@ -42,6 +43,11 @@ Registry.as(Extensions.Configuration) type: 'boolean', default: true, description: localize('strictSSL', "Whether the proxy server certificate should be verified against the list of supplied CAs.") + }, + 'http.proxyAuthorization': { + type: 'string', + default: null, + description: localize('proxyAuthorization', "The value to send as the 'Proxy-Authorization' header for every network request.") } } }); \ No newline at end of file diff --git a/src/vs/platform/request/node/requestService.ts b/src/vs/platform/request/node/requestService.ts index 7732034e84c..b4dac563fad 100644 --- a/src/vs/platform/request/node/requestService.ts +++ b/src/vs/platform/request/node/requestService.ts @@ -6,6 +6,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable } from 'vs/base/common/lifecycle'; +import { assign } from 'vs/base/common/objects'; import { IRequestOptions, IRequestContext, request } from 'vs/base/node/request'; import { getProxyAgent } from 'vs/base/node/proxy'; import { IRequestService, IHTTPConfiguration } from 'vs/platform/request/common/request'; @@ -21,6 +22,7 @@ export class RequestService implements IRequestService { private proxyUrl: string; private strictSSL: boolean; + private authorization: string; private disposables: IDisposable[] = []; constructor( @@ -37,6 +39,7 @@ export class RequestService implements IRequestService { private configure(config: IHTTPConfiguration) { this.proxyUrl = config.http && config.http.proxy; this.strictSSL = config.http && config.http.proxyStrictSSL; + this.authorization = config.http && config.http.proxyAuthorization; } request(options: IRequestOptions): TPromise { @@ -45,6 +48,10 @@ export class RequestService implements IRequestService { options.agent = getProxyAgent(options.url, { proxyUrl, strictSSL }); } + if (this.authorization) { + options.headers = assign(options.headers || {}, { 'Proxy-Authorization': this.authorization }); + } + return request(options); } }