From ffb34ac581065b1182ec5f93a30d2204f5a5aed9 Mon Sep 17 00:00:00 2001
From: Rahul Pidde <206018639+cx-rahul-pidde@users.noreply.github.com>
Date: Fri, 7 Nov 2025 10:24:23 +0530
Subject: [PATCH 1/2] remote-ssh ouath fix
---
media/auth.js | 35 ++++++++++++++++++++----
src/webview/authenticationWebview.ts | 40 ++++++++++++++++++++++------
2 files changed, 62 insertions(+), 13 deletions(-)
diff --git a/media/auth.js b/media/auth.js
index eece23c9..cc79f64d 100644
--- a/media/auth.js
+++ b/media/auth.js
@@ -1,5 +1,7 @@
+// Add console.log to check DOMContentLoaded registration and call
(function () {
document.addEventListener("DOMContentLoaded", function () {
+ console.log("DOMContentLoaded event registered and called");
const vscode = acquireVsCodeApi();
const authButton = document.getElementById("authButton");
const messageBox = document.getElementById("messageBox");
@@ -13,9 +15,15 @@
const authenticatedMessage = document.getElementById(
"authenticatedMessage"
);
+ // Debug: initial classList of loginForm
+ if (loginForm) {
+ console.log("loginForm.classList initial:", Array.from(loginForm.classList));
+ }
- window.addEventListener("message", (event) => {
+ window.addEventListener("message", (event) => {
+ console.log("window message event received (auth button enable/disable):", event.data);
const message = event.data;
+ console.log("parsed message object (auth button enable/disable):", message);
if (message.command === "disableAuthButton") {
const authButton = document.getElementById("authButton");
if (authButton) {
@@ -45,6 +53,7 @@
document.querySelectorAll('input[name="authMethod"]').forEach((radio) => {
radio.addEventListener("change", (e) => {
+ console.log("authMethod radio change event:", e.target.value);
const isOAuth = e.target.value === "oauth";
document
.getElementById("oauthForm")
@@ -58,6 +67,7 @@
});
authButton.addEventListener("click", () => {
+ console.log("authButton clicked");
messageBox.style.display = "none";
vscode.postMessage({
@@ -71,12 +81,15 @@
});
function handleInputApiKey() {
+ console.log("apiKey input event");
messageBox.style.display = "none";
isBtnDisabled();
}
apiKeyInput.addEventListener("input", handleInputApiKey);
function isBtnDisabled() {
+ // Add log to check when isBtnDisabled is called
+ console.log("isBtnDisabled called");
const authMethod = document.querySelector(
"input[name='authMethod']:checked"
).value;
@@ -91,6 +104,7 @@
}
function showMessage(text, isError) {
+ console.log("showMessage called:", text, isError);
document.getElementById("messageText").textContent = text;
messageBox.style.display = "flex";
if (isError) {
@@ -107,7 +121,9 @@
}
window.addEventListener("message", (event) => {
+ console.log("window message event received (auth state, loader, etc):", event.data);
const message = event.data;
+ console.log("parsed message object (auth state, loader, etc):", message);
if (message.type === "setAuthState") {
const logoutButton = document.getElementById("logoutButton");
@@ -116,15 +132,18 @@
authenticatedMessage.classList.remove("hidden");
logoutButton.classList.remove("hidden");
messageBox.style.display = "none";
+ console.log("loginForm.classList after authenticated:", Array.from(loginForm.classList));
} else {
loginForm.classList.remove("hidden");
authenticatedMessage.classList.add("hidden");
logoutButton.classList.add("hidden");
+ console.log("loginForm.classList after unauthenticated:", Array.from(loginForm.classList));
}
logoutButton.replaceWith(logoutButton.cloneNode(true));
document
.getElementById("logoutButton")
.addEventListener("click", () => {
+ console.log("logoutButton clicked");
vscode.postMessage({ command: "requestLogoutConfirmation" });
});
} else if (message.type === "showLoader") {
@@ -173,8 +192,10 @@
) {
window.addEventListener("message", (event) => {
if (event.data.type === messageType) {
+ console.log(`Autocomplete message received for ${messageType}:`, event.data.items);
const items = event.data.items;
inputElement.addEventListener("input", function () {
+ console.log(`Autocomplete input event for ${messageType}:`, this.value);
const query = this.value.toLowerCase();
listElement.innerHTML = "";
if (validateCallback) {
@@ -205,8 +226,9 @@
filteredItems.forEach((item) => {
const div = document.createElement("div");
div.classList.add("autocomplete-item");
- div.innerHTML = ` ${item}`;
+ div.innerHTML = ' ' + item;
div.addEventListener("click", function () {
+ console.log(`Autocomplete item clicked for ${messageType}:`, item);
inputElement.value = item;
listElement.innerHTML = "";
listElement.style.display = "none";
@@ -220,6 +242,8 @@
});
document.addEventListener("click", function (event) {
+ // Add log for document click in autocomplete
+ console.log("Document click event for autocomplete");
if (event.target !== inputElement) {
listElement.innerHTML = "";
listElement.style.display = "none";
@@ -231,9 +255,10 @@
});
}
- setupAutocomplete(urlInput, urlsList, "setUrls", (query) =>
- vscode.postMessage({ command: "validateURL", baseUri: query })
- );
+ setupAutocomplete(urlInput, urlsList, "setUrls", (query) => {
+ console.log("setupAutocomplete validateCallback for setUrls:", query);
+ vscode.postMessage({ command: "validateURL", baseUri: query });
+ });
setupAutocomplete(tenantInput, tenantList, "setTenants");
});
})();
diff --git a/src/webview/authenticationWebview.ts b/src/webview/authenticationWebview.ts
index 7f5fd999..e4deb435 100644
--- a/src/webview/authenticationWebview.ts
+++ b/src/webview/authenticationWebview.ts
@@ -37,33 +37,43 @@ export class AuthenticationWebview {
}
private async initialize() {
- this._panel.webview.postMessage({ type: "showLoader" });
+ console.log("[AuthenticationWebview.initialize] posting showLoader message");
+ await this._panel.webview.postMessage({ type: "showLoader" });
const authService = AuthService.getInstance(this.context, this.logs);
let hasToken = false;
try {
+ console.log("[AuthenticationWebview.initialize] validating and updating auth state...");
hasToken = await authService.validateAndUpdateState();
+ console.log("[AuthenticationWebview.initialize] validateAndUpdateState result:", hasToken);
} catch (error) {
console.error("Error validating authentication state:", error);
}
- this._panel.webview.postMessage({
- type: "setAuthState",
- isAuthenticated: hasToken,
- });
+ const setAuthStateMessage = { type: "setAuthState", isAuthenticated: hasToken };
+ console.log("[AuthenticationWebview.initialize] posting setAuthState message:", setAuthStateMessage);
+ await this._panel.webview.postMessage(setAuthStateMessage);
const urls = this.getURIs(this.context);
- this._panel.webview.postMessage({ type: "setUrls", items: urls });
+ const setUrlsMessage = { type: "setUrls", items: urls };
+ console.log("[AuthenticationWebview.initialize] posting setUrls message:", setUrlsMessage);
+ await this._panel.webview.postMessage(setUrlsMessage);
const tenants = this.getTenants(this.context);
- this._panel.webview.postMessage({ type: "setTenants", items: tenants });
- this._panel.webview.postMessage({ type: "hideLoader" });
+ const setTenantsMessage = { type: "setTenants", items: tenants };
+ console.log("[AuthenticationWebview.initialize] posting setTenants message:", setTenantsMessage);
+ await this._panel.webview.postMessage(setTenantsMessage);
+ console.log("[AuthenticationWebview.initialize] posting hideLoader message");
+ await this._panel.webview.postMessage({ type: "hideLoader" });
}
public static show(context: vscode.ExtensionContext, webViewCommand: WebViewCommand, logs?: Logs) {
+ console.log("[AuthenticationWebview.show] invoked");
if (AuthenticationWebview.currentPanel) {
+ console.log("[AuthenticationWebview.show] revealing existing panel");
AuthenticationWebview.currentPanel._panel.reveal(vscode.ViewColumn.One);
return;
}
+ console.log("[AuthenticationWebview.show] creating new webview panel");
const panel = vscode.window.createWebviewPanel(
AuthenticationWebview.viewType,
"Checkmarx One Authentication",
@@ -74,12 +84,14 @@ export class AuthenticationWebview {
localResourceRoots: [context.extensionUri],
}
);
+ console.log("[AuthenticationWebview.show] webview panel created, instantiating AuthenticationWebview");
AuthenticationWebview.currentPanel = new AuthenticationWebview(
panel,
context,
logs,
webViewCommand
);
+ console.log("[AuthenticationWebview.show] AuthenticationWebview instance created and stored in currentPanel");
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -114,6 +126,7 @@ export class AuthenticationWebview {
}
private _getWebviewContent(): string {
+ console.log("[AuthenticationWebview._getWebviewContent] generating webview HTML");
const styleBootStrap = this.setWebUri(
"media",
"bootstrap",
@@ -131,6 +144,17 @@ export class AuthenticationWebview {
const successIcon = this.setWebUri("media", "icons", "success.svg");
const errorIcon = this.setWebUri("media", "icons", "error.svg");
const nonce = getNonce();
+ console.log("[AuthenticationWebview._getWebviewContent] resource URIs", {
+ styleBootStrap: styleBootStrap.toString(),
+ scriptBootStrap: scriptBootStrap.toString(),
+ scriptUri: scriptUri.toString(),
+ styleAuth: styleAuth.toString(),
+ loginIcon: loginIcon.toString(),
+ logoutIcon: logoutIcon.toString(),
+ successIcon: successIcon.toString(),
+ errorIcon: errorIcon.toString(),
+ nonce
+ });
return `
From b3f44a0e98dd2d9bbea6fa02fb554b3e52b512b7 Mon Sep 17 00:00:00 2001
From: Rahul Pidde <206018639+cx-rahul-pidde@users.noreply.github.com>
Date: Thu, 20 Nov 2025 18:48:26 +0530
Subject: [PATCH 2/2] removed logs
---
media/auth.js | 25 -------------------------
src/webview/authenticationWebview.ts | 24 ------------------------
2 files changed, 49 deletions(-)
diff --git a/media/auth.js b/media/auth.js
index cc79f64d..ebf42e8e 100644
--- a/media/auth.js
+++ b/media/auth.js
@@ -1,7 +1,5 @@
-// Add console.log to check DOMContentLoaded registration and call
(function () {
document.addEventListener("DOMContentLoaded", function () {
- console.log("DOMContentLoaded event registered and called");
const vscode = acquireVsCodeApi();
const authButton = document.getElementById("authButton");
const messageBox = document.getElementById("messageBox");
@@ -15,15 +13,9 @@
const authenticatedMessage = document.getElementById(
"authenticatedMessage"
);
- // Debug: initial classList of loginForm
- if (loginForm) {
- console.log("loginForm.classList initial:", Array.from(loginForm.classList));
- }
window.addEventListener("message", (event) => {
- console.log("window message event received (auth button enable/disable):", event.data);
const message = event.data;
- console.log("parsed message object (auth button enable/disable):", message);
if (message.command === "disableAuthButton") {
const authButton = document.getElementById("authButton");
if (authButton) {
@@ -53,7 +45,6 @@
document.querySelectorAll('input[name="authMethod"]').forEach((radio) => {
radio.addEventListener("change", (e) => {
- console.log("authMethod radio change event:", e.target.value);
const isOAuth = e.target.value === "oauth";
document
.getElementById("oauthForm")
@@ -67,7 +58,6 @@
});
authButton.addEventListener("click", () => {
- console.log("authButton clicked");
messageBox.style.display = "none";
vscode.postMessage({
@@ -81,15 +71,12 @@
});
function handleInputApiKey() {
- console.log("apiKey input event");
messageBox.style.display = "none";
isBtnDisabled();
}
apiKeyInput.addEventListener("input", handleInputApiKey);
function isBtnDisabled() {
- // Add log to check when isBtnDisabled is called
- console.log("isBtnDisabled called");
const authMethod = document.querySelector(
"input[name='authMethod']:checked"
).value;
@@ -104,7 +91,6 @@
}
function showMessage(text, isError) {
- console.log("showMessage called:", text, isError);
document.getElementById("messageText").textContent = text;
messageBox.style.display = "flex";
if (isError) {
@@ -121,9 +107,7 @@
}
window.addEventListener("message", (event) => {
- console.log("window message event received (auth state, loader, etc):", event.data);
const message = event.data;
- console.log("parsed message object (auth state, loader, etc):", message);
if (message.type === "setAuthState") {
const logoutButton = document.getElementById("logoutButton");
@@ -132,18 +116,15 @@
authenticatedMessage.classList.remove("hidden");
logoutButton.classList.remove("hidden");
messageBox.style.display = "none";
- console.log("loginForm.classList after authenticated:", Array.from(loginForm.classList));
} else {
loginForm.classList.remove("hidden");
authenticatedMessage.classList.add("hidden");
logoutButton.classList.add("hidden");
- console.log("loginForm.classList after unauthenticated:", Array.from(loginForm.classList));
}
logoutButton.replaceWith(logoutButton.cloneNode(true));
document
.getElementById("logoutButton")
.addEventListener("click", () => {
- console.log("logoutButton clicked");
vscode.postMessage({ command: "requestLogoutConfirmation" });
});
} else if (message.type === "showLoader") {
@@ -192,10 +173,8 @@
) {
window.addEventListener("message", (event) => {
if (event.data.type === messageType) {
- console.log(`Autocomplete message received for ${messageType}:`, event.data.items);
const items = event.data.items;
inputElement.addEventListener("input", function () {
- console.log(`Autocomplete input event for ${messageType}:`, this.value);
const query = this.value.toLowerCase();
listElement.innerHTML = "";
if (validateCallback) {
@@ -228,7 +207,6 @@
div.classList.add("autocomplete-item");
div.innerHTML = ' ' + item;
div.addEventListener("click", function () {
- console.log(`Autocomplete item clicked for ${messageType}:`, item);
inputElement.value = item;
listElement.innerHTML = "";
listElement.style.display = "none";
@@ -242,8 +220,6 @@
});
document.addEventListener("click", function (event) {
- // Add log for document click in autocomplete
- console.log("Document click event for autocomplete");
if (event.target !== inputElement) {
listElement.innerHTML = "";
listElement.style.display = "none";
@@ -256,7 +232,6 @@
}
setupAutocomplete(urlInput, urlsList, "setUrls", (query) => {
- console.log("setupAutocomplete validateCallback for setUrls:", query);
vscode.postMessage({ command: "validateURL", baseUri: query });
});
setupAutocomplete(tenantInput, tenantList, "setTenants");
diff --git a/src/webview/authenticationWebview.ts b/src/webview/authenticationWebview.ts
index e4deb435..45173e3c 100644
--- a/src/webview/authenticationWebview.ts
+++ b/src/webview/authenticationWebview.ts
@@ -37,43 +37,33 @@ export class AuthenticationWebview {
}
private async initialize() {
- console.log("[AuthenticationWebview.initialize] posting showLoader message");
await this._panel.webview.postMessage({ type: "showLoader" });
const authService = AuthService.getInstance(this.context, this.logs);
let hasToken = false;
try {
- console.log("[AuthenticationWebview.initialize] validating and updating auth state...");
hasToken = await authService.validateAndUpdateState();
- console.log("[AuthenticationWebview.initialize] validateAndUpdateState result:", hasToken);
} catch (error) {
console.error("Error validating authentication state:", error);
}
const setAuthStateMessage = { type: "setAuthState", isAuthenticated: hasToken };
- console.log("[AuthenticationWebview.initialize] posting setAuthState message:", setAuthStateMessage);
await this._panel.webview.postMessage(setAuthStateMessage);
const urls = this.getURIs(this.context);
const setUrlsMessage = { type: "setUrls", items: urls };
- console.log("[AuthenticationWebview.initialize] posting setUrls message:", setUrlsMessage);
await this._panel.webview.postMessage(setUrlsMessage);
const tenants = this.getTenants(this.context);
const setTenantsMessage = { type: "setTenants", items: tenants };
- console.log("[AuthenticationWebview.initialize] posting setTenants message:", setTenantsMessage);
await this._panel.webview.postMessage(setTenantsMessage);
- console.log("[AuthenticationWebview.initialize] posting hideLoader message");
await this._panel.webview.postMessage({ type: "hideLoader" });
}
public static show(context: vscode.ExtensionContext, webViewCommand: WebViewCommand, logs?: Logs) {
- console.log("[AuthenticationWebview.show] invoked");
if (AuthenticationWebview.currentPanel) {
- console.log("[AuthenticationWebview.show] revealing existing panel");
AuthenticationWebview.currentPanel._panel.reveal(vscode.ViewColumn.One);
return;
}
- console.log("[AuthenticationWebview.show] creating new webview panel");
const panel = vscode.window.createWebviewPanel(
AuthenticationWebview.viewType,
"Checkmarx One Authentication",
@@ -84,14 +74,12 @@ export class AuthenticationWebview {
localResourceRoots: [context.extensionUri],
}
);
- console.log("[AuthenticationWebview.show] webview panel created, instantiating AuthenticationWebview");
AuthenticationWebview.currentPanel = new AuthenticationWebview(
panel,
context,
logs,
webViewCommand
);
- console.log("[AuthenticationWebview.show] AuthenticationWebview instance created and stored in currentPanel");
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -126,7 +114,6 @@ export class AuthenticationWebview {
}
private _getWebviewContent(): string {
- console.log("[AuthenticationWebview._getWebviewContent] generating webview HTML");
const styleBootStrap = this.setWebUri(
"media",
"bootstrap",
@@ -144,17 +131,6 @@ export class AuthenticationWebview {
const successIcon = this.setWebUri("media", "icons", "success.svg");
const errorIcon = this.setWebUri("media", "icons", "error.svg");
const nonce = getNonce();
- console.log("[AuthenticationWebview._getWebviewContent] resource URIs", {
- styleBootStrap: styleBootStrap.toString(),
- scriptBootStrap: scriptBootStrap.toString(),
- scriptUri: scriptUri.toString(),
- styleAuth: styleAuth.toString(),
- loginIcon: loginIcon.toString(),
- logoutIcon: logoutIcon.toString(),
- successIcon: successIcon.toString(),
- errorIcon: errorIcon.toString(),
- nonce
- });
return `