From 6c2d9b4d5137b77cb3ea9fa5c9fe3bf8cfedd95c Mon Sep 17 00:00:00 2001 From: Will Lorey Date: Wed, 28 Jul 2021 09:52:49 -0700 Subject: [PATCH] Move ADAL specific files to ADAL folder (#298) --- src/cloudConsole/cloudConsole.ts | 2 +- src/login/adal/AdalAuthProvider.ts | 5 +-- .../{loginWithDeviceCode.ts => adal/login.ts} | 45 ++++++++++++++++--- src/login/{ => adal}/tokens.ts | 12 ++--- src/login/login.ts | 41 ----------------- 5 files changed, 49 insertions(+), 56 deletions(-) rename src/login/{loginWithDeviceCode.ts => adal/login.ts} (53%) rename src/login/{ => adal}/tokens.ts (96%) delete mode 100644 src/login/login.ts diff --git a/src/cloudConsole/cloudConsole.ts b/src/cloudConsole/cloudConsole.ts index 09a9d3e..c7ac90d 100644 --- a/src/cloudConsole/cloudConsole.ts +++ b/src/cloudConsole/cloudConsole.ts @@ -16,7 +16,7 @@ import { v4 as uuid } from 'uuid'; import { commands, env, EventEmitter, MessageItem, QuickPickItem, Terminal, Uri, window } from 'vscode'; import * as nls from 'vscode-nls'; import { AzureAccount, AzureLoginStatus, AzureSession, CloudShell, CloudShellStatus, UploadOptions } from '../azure-account.api'; -import { tokenFromRefreshToken } from '../login/tokens'; +import { tokenFromRefreshToken } from '../login/adal/tokens'; import { TelemetryReporter } from '../telemetry'; import { AccessTokens, connectTerminal, ConsoleUris, Errors, getUserSettings, provisionConsole, resetConsole, Size } from './cloudConsoleLauncher'; import { createServer, Queue, readJSON } from './ipc'; diff --git a/src/login/adal/AdalAuthProvider.ts b/src/login/adal/AdalAuthProvider.ts index 67c0703..9265a27 100644 --- a/src/login/adal/AdalAuthProvider.ts +++ b/src/login/adal/AdalAuthProvider.ts @@ -15,9 +15,8 @@ import { AzureLoginError } from "../../errors"; import { localize } from "../../utils/localize"; import { timeout } from "../../utils/timeUtils"; import { AbstractCredentials, AbstractCredentials2, AbstractLoginResult, AuthProviderBase } from "../AuthProviderBase"; -import { getCallbackEnvironment, parseQuery, UriEventHandler } from "../login"; -import { getUserCode, showDeviceCodeMessage } from "../loginWithDeviceCode"; -import { addTokenToCache, clearTokenCache, deleteRefreshToken, getTokenResponse, getTokensFromToken, getTokenWithAuthorizationCode, ProxyTokenCache, storeRefreshToken, tokenFromRefreshToken } from "../tokens"; +import { getCallbackEnvironment, getUserCode, parseQuery, showDeviceCodeMessage, UriEventHandler } from "./login"; +import { addTokenToCache, clearTokenCache, deleteRefreshToken, getTokenResponse, getTokensFromToken, getTokenWithAuthorizationCode, ProxyTokenCache, storeRefreshToken, tokenFromRefreshToken } from "./tokens"; const staticEnvironmentNames: string[] = [ ...staticEnvironments.map(environment => environment.name), diff --git a/src/login/loginWithDeviceCode.ts b/src/login/adal/login.ts similarity index 53% rename from src/login/loginWithDeviceCode.ts rename to src/login/adal/login.ts index 921d6a0..f2accb3 100644 --- a/src/login/loginWithDeviceCode.ts +++ b/src/login/adal/login.ts @@ -6,11 +6,46 @@ import { Environment } from "@azure/ms-rest-azure-env"; import { AuthenticationContext, MemoryCache } from "@azure/ms-rest-nodeauth/node_modules/adal-node"; import { UserCodeInfo } from "adal-node"; -import { env, MessageItem, window } from "vscode"; -import { clientId } from "../constants"; -import { AzureLoginError } from "../errors"; -import { localize } from "../utils/localize"; -import { openUri } from "../utils/openUri"; +import { env, EventEmitter, MessageItem, Uri, UriHandler, window } from "vscode"; +import { clientId } from "../../constants"; +import { AzureLoginError } from "../../errors"; +import { localize } from "../../utils/localize"; +import { openUri } from "../../utils/openUri"; + +export class UriEventHandler extends EventEmitter implements UriHandler { + public handleUri(uri: Uri): void { + this.fire(uri); + } +} + +/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */ +export function parseQuery(uri: Uri): any { + return uri.query.split('&').reduce((prev: any, current) => { + const queryString: string[] = current.split('='); + prev[queryString[0]] = queryString[1]; + return prev; + }, {}); +} +/* eslint-enable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */ + +export function getCallbackEnvironment(callbackUri: Uri): string { + if (callbackUri.authority.endsWith('.workspaces.github.com') || callbackUri.authority.endsWith('.github.dev')) { + return `${callbackUri.authority},`; + } + + switch (callbackUri.authority) { + case 'online.visualstudio.com': + return 'vso,'; + case 'online-ppe.core.vsengsaas.visualstudio.com': + return 'vsoppe,'; + case 'online.dev.core.vsengsaas.visualstudio.com': + return 'vsodev,'; + case 'canary.online.visualstudio.com': + return 'vsocanary,'; + default: + return ''; + } +} export async function showDeviceCodeMessage(userCode: UserCodeInfo): Promise { const copyAndOpen: MessageItem = { title: localize('azure-account.copyAndOpen', "Copy & Open") }; diff --git a/src/login/tokens.ts b/src/login/adal/tokens.ts similarity index 96% rename from src/login/tokens.ts rename to src/login/adal/tokens.ts index 53c6a26..9e26e67 100644 --- a/src/login/tokens.ts +++ b/src/login/adal/tokens.ts @@ -7,12 +7,12 @@ import { SubscriptionClient, SubscriptionModels } from "@azure/arm-subscriptions import { Environment } from "@azure/ms-rest-azure-env"; import { DeviceTokenCredentials as DeviceTokenCredentials2 } from '@azure/ms-rest-nodeauth'; import { AuthenticationContext, MemoryCache, TokenResponse, UserCodeInfo } from "adal-node"; -import { clientId, commonTenantId, credentialsSection } from "../constants"; -import { AzureLoginError } from "../errors"; -import { listAll } from "../utils/arrayUtils"; -import { tryGetKeyTar } from "../utils/keytar"; -import { localize } from "../utils/localize"; -import { isADFS } from "./environments"; +import { clientId, commonTenantId, credentialsSection } from "../../constants"; +import { AzureLoginError } from "../../errors"; +import { listAll } from "../../utils/arrayUtils"; +import { tryGetKeyTar } from "../../utils/keytar"; +import { localize } from "../../utils/localize"; +import { isADFS } from "../environments"; // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment const CacheDriver = require('adal-node/lib/cache-driver'); diff --git a/src/login/login.ts b/src/login/login.ts deleted file mode 100644 index c131d71..0000000 --- a/src/login/login.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as vscode from 'vscode'; - -export class UriEventHandler extends vscode.EventEmitter implements vscode.UriHandler { - public handleUri(uri: vscode.Uri): void { - this.fire(uri); - } -} - -/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */ -export function parseQuery(uri: vscode.Uri): any { - return uri.query.split('&').reduce((prev: any, current) => { - const queryString: string[] = current.split('='); - prev[queryString[0]] = queryString[1]; - return prev; - }, {}); -} -/* eslint-enable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */ - -export function getCallbackEnvironment(callbackUri: vscode.Uri): string { - if (callbackUri.authority.endsWith('.workspaces.github.com') || callbackUri.authority.endsWith('.github.dev')) { - return `${callbackUri.authority},`; - } - - switch (callbackUri.authority) { - case 'online.visualstudio.com': - return 'vso,'; - case 'online-ppe.core.vsengsaas.visualstudio.com': - return 'vsoppe,'; - case 'online.dev.core.vsengsaas.visualstudio.com': - return 'vsodev,'; - case 'canary.online.visualstudio.com': - return 'vsocanary,'; - default: - return ''; - } -}