From cf41788ad5dcc787c8e9ec821790ce9231dbb196 Mon Sep 17 00:00:00 2001 From: Brett Saviano Date: Tue, 24 Jun 2025 07:54:41 -0400 Subject: [PATCH] Retrieve password from Server Manager case-sensitively --- src/extension.ts | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index e0dcf046..958ac587 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -275,6 +275,11 @@ export async function resolveConnectionSpec(serverName: string, uri?: vscode.Uri } } +interface ServerManagerAuthSession extends vscode.AuthenticationSession { + serverName: string; + userName: string; +} + async function resolvePassword(serverSpec, ignoreUnauthenticated = false): Promise { if ( // Connection isn't unauthenticated @@ -287,19 +292,27 @@ async function resolvePassword(serverSpec, ignoreUnauthenticated = false): Promi // Handle Server Manager extension version < 3.8.0 const account = serverManagerApi.getAccount ? serverManagerApi.getAccount(serverSpec) : undefined; - let session = await vscode.authentication.getSession(serverManager.AUTHENTICATION_PROVIDER, scopes, { - silent: true, - account, - }); - if (!session) { - session = await vscode.authentication.getSession(serverManager.AUTHENTICATION_PROVIDER, scopes, { - createIfNone: true, + let session = await vscode.authentication.getSession( + serverManager.AUTHENTICATION_PROVIDER, + scopes, + { + silent: true, account, - }); + } + ); + if (!session) { + session = await vscode.authentication.getSession( + serverManager.AUTHENTICATION_PROVIDER, + scopes, + { + createIfNone: true, + account, + } + ); } if (session) { // If original spec lacked username use the one obtained by the authprovider - serverSpec.username = serverSpec.username || session.scopes[1]; + serverSpec.username = serverSpec.username || session.userName; serverSpec.password = session.accessToken; } }