Kerberos auth for proxies (#188130)
parent
d1177d5987
commit
6ae441b56f
|
@ -9,4 +9,4 @@ sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.mi
|
|||
rm -f packages.microsoft.gpg
|
||||
|
||||
apt update
|
||||
apt install -y code-insiders libsecret-1-dev libxkbfile-dev
|
||||
apt install -y code-insiders libsecret-1-dev libxkbfile-dev libkrb5-dev
|
||||
|
|
|
@ -107,7 +107,7 @@ jobs:
|
|||
- name: Setup Build Environment
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
||||
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libkrb5-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
||||
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
sudo chmod +x /etc/init.d/xvfb
|
||||
sudo update-rc.d xvfb defaults
|
||||
|
|
|
@ -45,6 +45,9 @@ jobs:
|
|||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-yarnCacheDir-
|
||||
- name: Install libkrb5-dev
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
run: sudo apt install -y libkrb5-dev
|
||||
- name: Execute yarn
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
|
|
|
@ -73,6 +73,12 @@ windows-foreground-love/build/**
|
|||
windows-foreground-love/src/**
|
||||
!windows-foreground-love/**/*.node
|
||||
|
||||
kerberos/binding.gyp
|
||||
kerberos/build/**
|
||||
kerberos/src/**
|
||||
kerberos/node_modules/**
|
||||
!kerberos/**/*.node
|
||||
|
||||
keytar/binding.gyp
|
||||
keytar/build/**
|
||||
keytar/src/**
|
||||
|
|
|
@ -67,6 +67,11 @@ steps:
|
|||
displayName: "Pull image"
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
sudo apt-get update && sudo apt-get install -y libkrb5-dev
|
||||
displayName: Install libkrb5-dev
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
for i in {1..5}; do # try 5 times
|
||||
|
|
|
@ -18,7 +18,7 @@ steps:
|
|||
- script: |
|
||||
set -e
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
||||
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libkrb5-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
||||
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
sudo chmod +x /etc/init.d/xvfb
|
||||
sudo update-rc.d xvfb defaults
|
||||
|
|
|
@ -110,6 +110,11 @@ steps:
|
|||
displayName: Register Docker QEMU
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- script: |
|
||||
sudo apt-get update && sudo apt-get install -y libkrb5-dev
|
||||
displayName: Install libkrb5-dev
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ steps:
|
|||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
|
||||
displayName: Setup NPM Authentication
|
||||
|
||||
- script: sudo apt update -y && sudo apt install -y build-essential pkg-config libx11-dev libx11-xcb-dev libxkbfile-dev libsecret-1-dev libnotify-bin
|
||||
- script: sudo apt update -y && sudo apt install -y build-essential pkg-config libx11-dev libx11-xcb-dev libxkbfile-dev libsecret-1-dev libnotify-bin libkrb5-dev
|
||||
displayName: Install build tools
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
|
|
|
@ -53,6 +53,11 @@ steps:
|
|||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
|
||||
displayName: Setup NPM Authentication
|
||||
|
||||
- script: |
|
||||
sudo apt-get update && sudo apt-get install -y libkrb5-dev
|
||||
displayName: Install libkrb5-dev
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
for i in {1..5}; do # try 5 times
|
||||
|
|
|
@ -38,8 +38,10 @@ exports.referenceGeneratedDepsByArch = {
|
|||
'libgbm1 (>= 17.1.0~rc2)',
|
||||
'libglib2.0-0 (>= 2.16.0)',
|
||||
'libglib2.0-0 (>= 2.39.4)',
|
||||
'libgssapi-krb5-2 (>= 1.17)',
|
||||
'libgtk-3-0 (>= 3.9.10)',
|
||||
'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
|
||||
'libkrb5-3 (>= 1.6.dfsg.2)',
|
||||
'libnspr4 (>= 2:4.9-2~)',
|
||||
'libnss3 (>= 2:3.22)',
|
||||
'libnss3 (>= 3.26)',
|
||||
|
@ -76,8 +78,10 @@ exports.referenceGeneratedDepsByArch = {
|
|||
'libgbm1 (>= 17.1.0~rc2)',
|
||||
'libglib2.0-0 (>= 2.12.0)',
|
||||
'libglib2.0-0 (>= 2.39.4)',
|
||||
'libgssapi-krb5-2 (>= 1.17)',
|
||||
'libgtk-3-0 (>= 3.9.10)',
|
||||
'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
|
||||
'libkrb5-3 (>= 1.6.dfsg.2)',
|
||||
'libnspr4 (>= 2:4.9-2~)',
|
||||
'libnss3 (>= 2:3.22)',
|
||||
'libnss3 (>= 3.26)',
|
||||
|
@ -113,8 +117,10 @@ exports.referenceGeneratedDepsByArch = {
|
|||
'libgbm1 (>= 17.1.0~rc2)',
|
||||
'libglib2.0-0 (>= 2.12.0)',
|
||||
'libglib2.0-0 (>= 2.39.4)',
|
||||
'libgssapi-krb5-2 (>= 1.17)',
|
||||
'libgtk-3-0 (>= 3.9.10)',
|
||||
'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
|
||||
'libkrb5-3 (>= 1.6.dfsg.2)',
|
||||
'libnspr4 (>= 2:4.9-2~)',
|
||||
'libnss3 (>= 2:3.22)',
|
||||
'libnss3 (>= 3.26)',
|
||||
|
@ -136,4 +142,4 @@ exports.referenceGeneratedDepsByArch = {
|
|||
'xdg-utils (>= 1.0.2)'
|
||||
]
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwLWxpc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwLWxpc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O2dHQUdnRzs7O0FBRWhHLGtIQUFrSDtBQUNsSCw0REFBNEQ7QUFDL0MsUUFBQSxjQUFjLEdBQUc7SUFDN0IsaUJBQWlCO0lBQ2pCLHFDQUFxQztJQUNyQyxtQkFBbUI7SUFDbkIsc0RBQXNEO0lBQ3RELHNCQUFzQixDQUFDLGlCQUFpQjtDQUN4QyxDQUFDO0FBRUYsb0hBQW9IO0FBQ3BILDBDQUEwQztBQUMxQyw4REFBOEQ7QUFDakQsUUFBQSxlQUFlLEdBQUc7SUFDOUIsWUFBWSxDQUFDLHlFQUF5RTtDQUN0RixDQUFDO0FBRVcsUUFBQSw0QkFBNEIsR0FBRztJQUMzQyxPQUFPLEVBQUU7UUFDUixpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsMkJBQTJCO1FBQzNCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixzREFBc0Q7UUFDdEQseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLHFDQUFxQztRQUNyQyx3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLFVBQVU7UUFDViwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsVUFBVTtRQUNWLFlBQVk7UUFDWiwwQkFBMEI7UUFDMUIsYUFBYTtRQUNiLFlBQVk7UUFDWixzQkFBc0I7S0FDdEI7SUFDRCxPQUFPLEVBQUU7UUFDUixpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsMkJBQTJCO1FBQzNCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLHNEQUFzRDtRQUN0RCx5QkFBeUI7UUFDekIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0Qix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIscUNBQXFDO1FBQ3JDLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsVUFBVTtRQUNWLDBCQUEwQjtRQUMxQixvQkFBb0I7UUFDcEIsK0JBQStCO1FBQy9CLHdCQUF3QjtRQUN4QixVQUFVO1FBQ1YsWUFBWTtRQUNaLDBCQUEwQjtRQUMxQixhQUFhO1FBQ2IsWUFBWTtRQUNaLHNCQUFzQjtLQUN0QjtJQUNELE9BQU8sRUFBRTtRQUNSLGlCQUFpQjtRQUNqQix3QkFBd0I7UUFDeEIsK0JBQStCO1FBQy9CLHdCQUF3QjtRQUN4QiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixzREFBc0Q7UUFDdEQsd0JBQXdCO1FBQ3hCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLHFDQUFxQztRQUNyQyx3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLFVBQVU7UUFDViwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsVUFBVTtRQUNWLFlBQVk7UUFDWiwwQkFBMEI7UUFDMUIsYUFBYTtRQUNiLFlBQVk7UUFDWixzQkFBc0I7S0FDdEI7Q0FDRCxDQUFDIn0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwLWxpc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwLWxpc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O2dHQUdnRzs7O0FBRWhHLGtIQUFrSDtBQUNsSCw0REFBNEQ7QUFDL0MsUUFBQSxjQUFjLEdBQUc7SUFDN0IsaUJBQWlCO0lBQ2pCLHFDQUFxQztJQUNyQyxtQkFBbUI7SUFDbkIsc0RBQXNEO0lBQ3RELHNCQUFzQixDQUFDLGlCQUFpQjtDQUN4QyxDQUFDO0FBRUYsb0hBQW9IO0FBQ3BILDBDQUEwQztBQUMxQyw4REFBOEQ7QUFDakQsUUFBQSxlQUFlLEdBQUc7SUFDOUIsWUFBWSxDQUFDLHlFQUF5RTtDQUN0RixDQUFDO0FBRVcsUUFBQSw0QkFBNEIsR0FBRztJQUMzQyxPQUFPLEVBQUU7UUFDUixpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsMkJBQTJCO1FBQzNCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixzREFBc0Q7UUFDdEQseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsNEJBQTRCO1FBQzVCLHdCQUF3QjtRQUN4QixxQ0FBcUM7UUFDckMsMkJBQTJCO1FBQzNCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsVUFBVTtRQUNWLDBCQUEwQjtRQUMxQixvQkFBb0I7UUFDcEIsK0JBQStCO1FBQy9CLHdCQUF3QjtRQUN4QixVQUFVO1FBQ1YsWUFBWTtRQUNaLDBCQUEwQjtRQUMxQixhQUFhO1FBQ2IsWUFBWTtRQUNaLHNCQUFzQjtLQUN0QjtJQUNELE9BQU8sRUFBRTtRQUNSLGlCQUFpQjtRQUNqQix3QkFBd0I7UUFDeEIsK0JBQStCO1FBQy9CLHdCQUF3QjtRQUN4QiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsc0RBQXNEO1FBQ3RELHlCQUF5QjtRQUN6QixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qix3QkFBd0I7UUFDeEIscUNBQXFDO1FBQ3JDLDJCQUEyQjtRQUMzQix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLFVBQVU7UUFDViwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsVUFBVTtRQUNWLFlBQVk7UUFDWiwwQkFBMEI7UUFDMUIsYUFBYTtRQUNiLFlBQVk7UUFDWixzQkFBc0I7S0FDdEI7SUFDRCxPQUFPLEVBQUU7UUFDUixpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsMkJBQTJCO1FBQzNCLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsc0RBQXNEO1FBQ3RELHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qix3QkFBd0I7UUFDeEIscUNBQXFDO1FBQ3JDLDJCQUEyQjtRQUMzQix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLFVBQVU7UUFDViwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLCtCQUErQjtRQUMvQix3QkFBd0I7UUFDeEIsVUFBVTtRQUNWLFlBQVk7UUFDWiwwQkFBMEI7UUFDMUIsYUFBYTtRQUNiLFlBQVk7UUFDWixzQkFBc0I7S0FDdEI7Q0FDRCxDQUFDIn0=
|
|
@ -38,8 +38,10 @@ export const referenceGeneratedDepsByArch = {
|
|||
'libgbm1 (>= 17.1.0~rc2)',
|
||||
'libglib2.0-0 (>= 2.16.0)',
|
||||
'libglib2.0-0 (>= 2.39.4)',
|
||||
'libgssapi-krb5-2 (>= 1.17)',
|
||||
'libgtk-3-0 (>= 3.9.10)',
|
||||
'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
|
||||
'libkrb5-3 (>= 1.6.dfsg.2)',
|
||||
'libnspr4 (>= 2:4.9-2~)',
|
||||
'libnss3 (>= 2:3.22)',
|
||||
'libnss3 (>= 3.26)',
|
||||
|
@ -76,8 +78,10 @@ export const referenceGeneratedDepsByArch = {
|
|||
'libgbm1 (>= 17.1.0~rc2)',
|
||||
'libglib2.0-0 (>= 2.12.0)',
|
||||
'libglib2.0-0 (>= 2.39.4)',
|
||||
'libgssapi-krb5-2 (>= 1.17)',
|
||||
'libgtk-3-0 (>= 3.9.10)',
|
||||
'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
|
||||
'libkrb5-3 (>= 1.6.dfsg.2)',
|
||||
'libnspr4 (>= 2:4.9-2~)',
|
||||
'libnss3 (>= 2:3.22)',
|
||||
'libnss3 (>= 3.26)',
|
||||
|
@ -113,8 +117,10 @@ export const referenceGeneratedDepsByArch = {
|
|||
'libgbm1 (>= 17.1.0~rc2)',
|
||||
'libglib2.0-0 (>= 2.12.0)',
|
||||
'libglib2.0-0 (>= 2.39.4)',
|
||||
'libgssapi-krb5-2 (>= 1.17)',
|
||||
'libgtk-3-0 (>= 3.9.10)',
|
||||
'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
|
||||
'libkrb5-3 (>= 1.6.dfsg.2)',
|
||||
'libnspr4 (>= 2:4.9-2~)',
|
||||
'libnss3 (>= 2:3.22)',
|
||||
'libnss3 (>= 3.26)',
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -64,7 +64,11 @@ export const referenceGeneratedDepsByArch = {
|
|||
'libgio-2.0.so.0()(64bit)',
|
||||
'libglib-2.0.so.0()(64bit)',
|
||||
'libgobject-2.0.so.0()(64bit)',
|
||||
'libgssapi_krb5.so.2()(64bit)',
|
||||
'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
|
||||
'libgtk-3.so.0()(64bit)',
|
||||
'libkrb5.so.3()(64bit)',
|
||||
'libkrb5.so.3(krb5_3_MIT)(64bit)',
|
||||
'libm.so.6()(64bit)',
|
||||
'libm.so.6(GLIBC_2.2.5)(64bit)',
|
||||
'libnspr4.so()(64bit)',
|
||||
|
@ -145,8 +149,12 @@ export const referenceGeneratedDepsByArch = {
|
|||
'libgio-2.0.so.0',
|
||||
'libglib-2.0.so.0',
|
||||
'libgobject-2.0.so.0',
|
||||
'libgssapi_krb5.so.2',
|
||||
'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)',
|
||||
'libgtk-3.so.0',
|
||||
'libgtk-3.so.0()(64bit)',
|
||||
'libkrb5.so.3',
|
||||
'libkrb5.so.3(krb5_3_MIT)',
|
||||
'libm.so.6',
|
||||
'libm.so.6(GLIBC_2.4)',
|
||||
'libnspr4.so',
|
||||
|
@ -235,7 +243,11 @@ export const referenceGeneratedDepsByArch = {
|
|||
'libgio-2.0.so.0()(64bit)',
|
||||
'libglib-2.0.so.0()(64bit)',
|
||||
'libgobject-2.0.so.0()(64bit)',
|
||||
'libgssapi_krb5.so.2()(64bit)',
|
||||
'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
|
||||
'libgtk-3.so.0()(64bit)',
|
||||
'libkrb5.so.3()(64bit)',
|
||||
'libkrb5.so.3(krb5_3_MIT)(64bit)',
|
||||
'libm.so.6()(64bit)',
|
||||
'libm.so.6(GLIBC_2.17)(64bit)',
|
||||
'libnspr4.so()(64bit)',
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
"@parcel/watcher": "2.1.0",
|
||||
"@vscode/iconv-lite-umd": "0.7.0",
|
||||
"@vscode/policy-watcher": "^1.1.4",
|
||||
"@vscode/proxy-agent": "^0.16.0",
|
||||
"@vscode/proxy-agent": "^0.17.0",
|
||||
"@vscode/ripgrep": "^1.15.5",
|
||||
"@vscode/spdlog": "^0.13.10",
|
||||
"@vscode/sqlite3": "5.1.6-vscode",
|
||||
|
@ -83,6 +83,7 @@
|
|||
"http-proxy-agent": "^2.1.0",
|
||||
"https-proxy-agent": "^2.2.3",
|
||||
"jschardet": "3.0.0",
|
||||
"kerberos": "^2.0.1",
|
||||
"keytar": "7.9.0",
|
||||
"minimist": "^1.2.6",
|
||||
"native-is-elevated": "0.7.0",
|
||||
|
@ -116,6 +117,7 @@
|
|||
"@types/gulp-postcss": "^8.0.0",
|
||||
"@types/gulp-svgmin": "^1.2.1",
|
||||
"@types/http-proxy-agent": "^2.0.1",
|
||||
"@types/kerberos": "^1.1.2",
|
||||
"@types/keytar": "^4.4.0",
|
||||
"@types/minimist": "^1.2.1",
|
||||
"@types/mocha": "^9.1.1",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"@microsoft/1ds-post-js": "^3.2.2",
|
||||
"@parcel/watcher": "2.1.0",
|
||||
"@vscode/iconv-lite-umd": "0.7.0",
|
||||
"@vscode/proxy-agent": "^0.16.0",
|
||||
"@vscode/proxy-agent": "^0.17.0",
|
||||
"@vscode/ripgrep": "^1.15.5",
|
||||
"@vscode/spdlog": "^0.13.10",
|
||||
"@vscode/vscode-languagedetection": "1.0.21",
|
||||
|
@ -18,6 +18,7 @@
|
|||
"http-proxy-agent": "^2.1.0",
|
||||
"https-proxy-agent": "^2.2.3",
|
||||
"jschardet": "3.0.0",
|
||||
"kerberos": "^2.0.1",
|
||||
"keytar": "7.9.0",
|
||||
"minimist": "^1.2.6",
|
||||
"native-watchdog": "^1.4.1",
|
||||
|
|
|
@ -58,10 +58,10 @@
|
|||
resolved "https://registry.yarnpkg.com/@vscode/iconv-lite-umd/-/iconv-lite-umd-0.7.0.tgz#d2f1e0664ee6036408f9743fee264ea0699b0e48"
|
||||
integrity sha512-bRRFxLfg5dtAyl5XyiVWz/ZBPahpOpPrNYnnHpOpUZvam4tKH35wdhP4Kj6PbM0+KdliOsPzbGWpkxcdpNB/sg==
|
||||
|
||||
"@vscode/proxy-agent@^0.16.0":
|
||||
version "0.16.0"
|
||||
resolved "https://registry.yarnpkg.com/@vscode/proxy-agent/-/proxy-agent-0.16.0.tgz#32054387f7aaf26d1b5d53f553d53bfd8489eab8"
|
||||
integrity sha512-b8yBHgdngDrP+9HPJtnPUJjPHd+zfEvOYoc8KioWJVs0rFVT2U77nFDVC70Mrrscf87ya2a/sPY32nTrwFfOQQ==
|
||||
"@vscode/proxy-agent@^0.17.0":
|
||||
version "0.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@vscode/proxy-agent/-/proxy-agent-0.17.0.tgz#e60d43e2779c07c223d3bad9b7de8eedf7ca1294"
|
||||
integrity sha512-p4gJ57KeWGw0CEG9R13dmsgmWmszoOQ836pf/PVbAf+ZRF27il3QcFvOhA10XE2QFHaOcRxuJnnIpUD1lSMvqQ==
|
||||
dependencies:
|
||||
"@tootallnate/once" "^3.0.0"
|
||||
agent-base "^7.0.1"
|
||||
|
@ -454,6 +454,15 @@ jschardet@3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-3.0.0.tgz#898d2332e45ebabbdb6bf2feece9feea9a99e882"
|
||||
integrity sha512-lJH6tJ77V8Nzd5QWRkFYCLc13a3vADkh3r/Fi8HupZGWk2OVVDfnZP8V/VgQgZ+lzW0kG2UGb5hFgt3V3ndotQ==
|
||||
|
||||
kerberos@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/kerberos/-/kerberos-2.0.1.tgz#663b0b46883b4da84495f60f2e9e399a43a33ef5"
|
||||
integrity sha512-O/jIgbdGK566eUhFwIcgalbqirYU/r76MW7/UFw06Fd9x5bSwgyZWL/Vm26aAmezQww/G9KYkmmJBkEkPk5HLw==
|
||||
dependencies:
|
||||
bindings "^1.5.0"
|
||||
node-addon-api "^4.3.0"
|
||||
prebuild-install "7.1.1"
|
||||
|
||||
keytar@7.9.0:
|
||||
version "7.9.0"
|
||||
resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.9.0.tgz#4c6225708f51b50cbf77c5aae81721964c2918cb"
|
||||
|
@ -595,6 +604,24 @@ picomatch@^2.3.1:
|
|||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
prebuild-install@7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45"
|
||||
integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==
|
||||
dependencies:
|
||||
detect-libc "^2.0.0"
|
||||
expand-template "^2.0.3"
|
||||
github-from-package "0.0.0"
|
||||
minimist "^1.2.3"
|
||||
mkdirp-classic "^0.5.3"
|
||||
napi-build-utils "^1.0.1"
|
||||
node-abi "^3.3.0"
|
||||
pump "^3.0.0"
|
||||
rc "^1.2.7"
|
||||
simple-get "^4.0.0"
|
||||
tar-fs "^2.0.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
|
||||
prebuild-install@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.1.tgz#c10075727c318efe72412f333e0ef625beaf3870"
|
||||
|
|
|
@ -14,6 +14,11 @@ function testErrorMessage(module: string): string {
|
|||
|
||||
flakySuite('Native Modules (all platforms)', () => {
|
||||
|
||||
test('kerberos', async () => {
|
||||
const kerberos = await import('kerberos');
|
||||
assert.ok(typeof kerberos.initializeClient === 'function', testErrorMessage('kerberos'));
|
||||
});
|
||||
|
||||
test('native-is-elevated', async () => {
|
||||
const isElevated = await import('native-is-elevated');
|
||||
assert.ok(typeof isElevated === 'function', testErrorMessage('native-is-elevated '));
|
||||
|
|
|
@ -30,7 +30,11 @@ export function connectProxyResolver(
|
|||
const doUseHostProxy = typeof useHostProxy === 'boolean' ? useHostProxy : !initData.remote.isRemote;
|
||||
const params: ProxyAgentParams = {
|
||||
resolveProxy: url => extHostWorkspace.resolveProxy(url),
|
||||
getHttpProxySetting: () => configProvider.getConfiguration('http').get('proxy'),
|
||||
lookupProxyAuthorization: lookupProxyAuthorization.bind(undefined, extHostLogService, configProvider, {}, {}),
|
||||
getProxyURL: () => configProvider.getConfiguration('http').get('proxy'),
|
||||
getProxySupport: () => configProvider.getConfiguration('http').get<ProxySupportSetting>('proxySupport') || 'off',
|
||||
getSystemCertificatesV1: () => certSettingV1(configProvider),
|
||||
getSystemCertificatesV2: () => certSettingV2(configProvider),
|
||||
log: (level, message, ...args) => {
|
||||
switch (level) {
|
||||
case LogLevel.Trace: extHostLogService.trace(message, ...args); break;
|
||||
|
@ -51,49 +55,18 @@ export function connectProxyResolver(
|
|||
// TODO @chrmarti Remove this from proxy agent
|
||||
proxyResolveTelemetry: () => { },
|
||||
useHostProxy: doUseHostProxy,
|
||||
useSystemCertificatesV2: certSettingV2(configProvider),
|
||||
addCertificates: [],
|
||||
env: process.env,
|
||||
};
|
||||
configProvider.onDidChangeConfiguration(e => {
|
||||
params.useSystemCertificatesV2 = certSettingV2(configProvider);
|
||||
});
|
||||
const resolveProxy = createProxyResolver(params);
|
||||
const lookup = createPatchedModules(params, configProvider, resolveProxy);
|
||||
const lookup = createPatchedModules(params, resolveProxy);
|
||||
return configureModuleLoading(extensionService, lookup);
|
||||
}
|
||||
|
||||
function createPatchedModules(params: ProxyAgentParams, configProvider: ExtHostConfigProvider, resolveProxy: ReturnType<typeof createProxyResolver>) {
|
||||
const proxySetting = {
|
||||
config: configProvider.getConfiguration('http')
|
||||
.get<ProxySupportSetting>('proxySupport') || 'off'
|
||||
};
|
||||
configProvider.onDidChangeConfiguration(e => {
|
||||
proxySetting.config = configProvider.getConfiguration('http')
|
||||
.get<ProxySupportSetting>('proxySupport') || 'off';
|
||||
});
|
||||
const certSetting = {
|
||||
config: certSettingV1(configProvider)
|
||||
};
|
||||
configProvider.onDidChangeConfiguration(e => {
|
||||
certSetting.config = certSettingV1(configProvider);
|
||||
});
|
||||
|
||||
function createPatchedModules(params: ProxyAgentParams, resolveProxy: ReturnType<typeof createProxyResolver>) {
|
||||
return {
|
||||
http: {
|
||||
off: Object.assign({}, http, createHttpPatch(http, resolveProxy, { config: 'off' }, certSetting, true)),
|
||||
on: Object.assign({}, http, createHttpPatch(http, resolveProxy, { config: 'on' }, certSetting, true)),
|
||||
override: Object.assign({}, http, createHttpPatch(http, resolveProxy, { config: 'override' }, certSetting, true)),
|
||||
onRequest: Object.assign({}, http, createHttpPatch(http, resolveProxy, proxySetting, certSetting, true)),
|
||||
default: Object.assign(http, createHttpPatch(http, resolveProxy, proxySetting, certSetting, false)) // run last
|
||||
} as Record<string, typeof http>,
|
||||
https: {
|
||||
off: Object.assign({}, https, createHttpPatch(https, resolveProxy, { config: 'off' }, certSetting, true)),
|
||||
on: Object.assign({}, https, createHttpPatch(https, resolveProxy, { config: 'on' }, certSetting, true)),
|
||||
override: Object.assign({}, https, createHttpPatch(https, resolveProxy, { config: 'override' }, certSetting, true)),
|
||||
onRequest: Object.assign({}, https, createHttpPatch(https, resolveProxy, proxySetting, certSetting, true)),
|
||||
default: Object.assign(https, createHttpPatch(https, resolveProxy, proxySetting, certSetting, false)) // run last
|
||||
} as Record<string, typeof https>,
|
||||
http: Object.assign(http, createHttpPatch(params, http, resolveProxy)),
|
||||
https: Object.assign(https, createHttpPatch(params, https, resolveProxy)),
|
||||
net: Object.assign(net, createNetPatch(params, net)),
|
||||
tls: Object.assign(tls, createTlsPatch(params, tls))
|
||||
};
|
||||
|
@ -128,17 +101,55 @@ function configureModuleLoading(extensionService: ExtHostExtensionService, looku
|
|||
return original.apply(this, arguments);
|
||||
}
|
||||
|
||||
const modules = lookup[request];
|
||||
const ext = extensionPaths.findSubstr(URI.file(parent.filename));
|
||||
let cache = modulesCache.get(ext);
|
||||
if (!cache) {
|
||||
modulesCache.set(ext, cache = {});
|
||||
}
|
||||
if (!cache[request]) {
|
||||
const mod = modules.default;
|
||||
const mod = lookup[request];
|
||||
cache[request] = <any>{ ...mod }; // Copy to work around #93167.
|
||||
}
|
||||
return cache[request];
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
async function lookupProxyAuthorization(
|
||||
extHostLogService: ILogService,
|
||||
configProvider: ExtHostConfigProvider,
|
||||
proxyAuthenticateCache: Record<string, string | string[] | undefined>,
|
||||
pendingLookups: Record<string, Promise<string | undefined>>,
|
||||
proxyURL: string,
|
||||
proxyAuthenticate?: string | string[]
|
||||
): Promise<string | undefined> {
|
||||
const cached = proxyAuthenticateCache[proxyURL];
|
||||
if (proxyAuthenticate) {
|
||||
proxyAuthenticateCache[proxyURL] = proxyAuthenticate;
|
||||
}
|
||||
extHostLogService.trace('ProxyResolver#lookupProxyAuthorization callback', `proxyURL:${proxyURL}`, `proxyAuthenticate:${proxyAuthenticate}`, `proxyAuthenticateCache:${cached}`);
|
||||
const header = proxyAuthenticate || cached;
|
||||
const authenticate = Array.isArray(header) ? header : typeof header === 'string' ? [header] : [];
|
||||
if (authenticate.some(a => /^(Negotiate|Kerberos)( |$)/i.test(a))) {
|
||||
const lookupKey = `${proxyURL}:Negotiate`;
|
||||
return pendingLookups[lookupKey] ??= (async () => {
|
||||
try {
|
||||
const kerberos = await import('kerberos');
|
||||
const url = new URL(proxyURL);
|
||||
// TODO: Add core user setting.
|
||||
const spn = configProvider.getConfiguration('github.copilot')?.advanced?.kerberosServicePrincipal as string | undefined
|
||||
|| (process.platform === 'win32' ? `HTTP/${url.hostname}` : `HTTP@${url.hostname}`);
|
||||
extHostLogService.debug('ProxyResolver#lookupProxyAuthorization Kerberos authentication lookup', `proxyURL:${proxyURL}`, `spn:${spn}`);
|
||||
const client = await kerberos.initializeClient(spn);
|
||||
const response = await client.step('');
|
||||
return 'Negotiate ' + response;
|
||||
} catch (err) {
|
||||
extHostLogService.error('ProxyResolver#lookupProxyAuthorization Kerberos authentication failed', err);
|
||||
return undefined;
|
||||
} finally {
|
||||
delete pendingLookups[lookupKey];
|
||||
}
|
||||
})();
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
|
40
yarn.lock
40
yarn.lock
|
@ -1001,6 +1001,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
|
||||
integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
|
||||
|
||||
"@types/kerberos@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/kerberos/-/kerberos-1.1.2.tgz#2a774abd48f727852f697d74241e9de3aea8e646"
|
||||
integrity sha512-cLixfcXjdj7qohLasmC1G4fh+en4e4g7mFZiG38D+K9rS9BRKFlq1JH5dGkQzICckbu4wM+RcwSa4VRHlBg7Rg==
|
||||
|
||||
"@types/keytar@^4.4.0":
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/keytar/-/keytar-4.4.0.tgz#ca24e6ee6d0df10c003aafe26e93113b8faf0d8e"
|
||||
|
@ -1304,10 +1309,10 @@
|
|||
bindings "^1.5.0"
|
||||
node-addon-api "^6.0.0"
|
||||
|
||||
"@vscode/proxy-agent@^0.16.0":
|
||||
version "0.16.0"
|
||||
resolved "https://registry.yarnpkg.com/@vscode/proxy-agent/-/proxy-agent-0.16.0.tgz#32054387f7aaf26d1b5d53f553d53bfd8489eab8"
|
||||
integrity sha512-b8yBHgdngDrP+9HPJtnPUJjPHd+zfEvOYoc8KioWJVs0rFVT2U77nFDVC70Mrrscf87ya2a/sPY32nTrwFfOQQ==
|
||||
"@vscode/proxy-agent@^0.17.0":
|
||||
version "0.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@vscode/proxy-agent/-/proxy-agent-0.17.0.tgz#e60d43e2779c07c223d3bad9b7de8eedf7ca1294"
|
||||
integrity sha512-p4gJ57KeWGw0CEG9R13dmsgmWmszoOQ836pf/PVbAf+ZRF27il3QcFvOhA10XE2QFHaOcRxuJnnIpUD1lSMvqQ==
|
||||
dependencies:
|
||||
"@tootallnate/once" "^3.0.0"
|
||||
agent-base "^7.0.1"
|
||||
|
@ -6205,6 +6210,15 @@ just-extend@^4.0.2:
|
|||
resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744"
|
||||
integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==
|
||||
|
||||
kerberos@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/kerberos/-/kerberos-2.0.1.tgz#663b0b46883b4da84495f60f2e9e399a43a33ef5"
|
||||
integrity sha512-O/jIgbdGK566eUhFwIcgalbqirYU/r76MW7/UFw06Fd9x5bSwgyZWL/Vm26aAmezQww/G9KYkmmJBkEkPk5HLw==
|
||||
dependencies:
|
||||
bindings "^1.5.0"
|
||||
node-addon-api "^4.3.0"
|
||||
prebuild-install "7.1.1"
|
||||
|
||||
keygrip@~1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
|
||||
|
@ -8194,6 +8208,24 @@ postcss@^8.4.19:
|
|||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
prebuild-install@7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45"
|
||||
integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==
|
||||
dependencies:
|
||||
detect-libc "^2.0.0"
|
||||
expand-template "^2.0.3"
|
||||
github-from-package "0.0.0"
|
||||
minimist "^1.2.3"
|
||||
mkdirp-classic "^0.5.3"
|
||||
napi-build-utils "^1.0.1"
|
||||
node-abi "^3.3.0"
|
||||
pump "^3.0.0"
|
||||
rc "^1.2.7"
|
||||
simple-get "^4.0.0"
|
||||
tar-fs "^2.0.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
|
||||
prebuild-install@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.1.tgz#c10075727c318efe72412f333e0ef625beaf3870"
|
||||
|
|
Loading…
Reference in New Issue