diff --git a/extensions/azurecore/src/account-provider/azureAccountProvider2.ts b/extensions/azurecore/src/account-provider/azureAccountProvider2.ts index d54d6f1c3a..a68fa3b2f7 100644 --- a/extensions/azurecore/src/account-provider/azureAccountProvider2.ts +++ b/extensions/azurecore/src/account-provider/azureAccountProvider2.ts @@ -44,6 +44,10 @@ export class AzureAccountProvider implements azdata.AccountProvider { constructor(private metadata: AzureAccountProviderMetadata, private _tokenCache: TokenCache, private _context: vscode.ExtensionContext) { this.commonAuthorityUrl = url.resolve(this.metadata.settings.host, AzureAccountProvider.AadCommonTenant); } + // interface method + clearTokenCache(): Thenable { + return this._tokenCache.clear(); + } // interface method initialize(storedAccounts: azdata.Account[]): Thenable { diff --git a/extensions/azurecore/src/account-provider/azureAccountProviderService.ts b/extensions/azurecore/src/account-provider/azureAccountProviderService.ts index d9869fd67f..613f94bcb1 100644 --- a/extensions/azurecore/src/account-provider/azureAccountProviderService.ts +++ b/extensions/azurecore/src/account-provider/azureAccountProviderService.ts @@ -70,8 +70,7 @@ export class AzureAccountProviderService implements vscode.Disposable { // let self = this; let promises: Thenable[] = providerSettings.map(provider => { - // return self._accountProviders[provider.metadata.id].clearTokenCache(); - return Promise.resolve(); + return this._accountProviders[provider.metadata.id]?.clearTokenCache(); }); return Promise.all(promises) diff --git a/src/sql/azdata.d.ts b/src/sql/azdata.d.ts index a876fced61..2341b457e9 100644 --- a/src/sql/azdata.d.ts +++ b/src/sql/azdata.d.ts @@ -2300,6 +2300,11 @@ declare module 'azdata' { * and call the end OAuth method. */ autoOAuthCancelled(): Thenable; + + /** + * Clears token cache + */ + clearTokenCache(): Thenable; } // Resource provider interfaces ----------------------------------------------------------------------- diff --git a/src/sql/platform/accounts/test/common/testAccountManagementService.ts b/src/sql/platform/accounts/test/common/testAccountManagementService.ts index 6a85684423..ab7e0d1c23 100644 --- a/src/sql/platform/accounts/test/common/testAccountManagementService.ts +++ b/src/sql/platform/accounts/test/common/testAccountManagementService.ts @@ -77,6 +77,9 @@ export class TestAccountManagementService implements IAccountManagementService { } export class AccountProviderStub implements azdata.AccountProvider { + clearTokenCache(): Thenable { + return Promise.resolve(); + } autoOAuthCancelled(): Thenable { return Promise.resolve(); } diff --git a/src/sql/workbench/api/browser/mainThreadAccountManagement.ts b/src/sql/workbench/api/browser/mainThreadAccountManagement.ts index 8bd6c74d4f..812fcd304b 100644 --- a/src/sql/workbench/api/browser/mainThreadAccountManagement.ts +++ b/src/sql/workbench/api/browser/mainThreadAccountManagement.ts @@ -86,6 +86,9 @@ export class MainThreadAccountManagement extends Disposable implements MainThrea }, refresh(account: azdata.Account): Thenable { return self._proxy.$refresh(handle, account); + }, + clearTokenCache(): Thenable { + return self._proxy.$clearTokenCache(); } }; this._accountManagementService.registerProvider(providerMetadata, accountProvider); diff --git a/src/sql/workbench/api/common/sqlExtHost.protocol.ts b/src/sql/workbench/api/common/sqlExtHost.protocol.ts index 880478bf03..53e7673d45 100644 --- a/src/sql/workbench/api/common/sqlExtHost.protocol.ts +++ b/src/sql/workbench/api/common/sqlExtHost.protocol.ts @@ -35,6 +35,7 @@ export abstract class ExtHostAccountManagementShape { $prompt(handle: number): Thenable { throw ni(); } $refresh(handle: number, account: azdata.Account): Thenable { throw ni(); } $accountsChanged(handle: number, accounts: azdata.Account[]): Thenable { throw ni(); } + $clearTokenCache(): Thenable { throw ni(); } } export abstract class ExtHostConnectionManagementShape {