Skip to content

Commit ca43321

Browse files
remote-ssh ouath fix
1 parent 9ddf71e commit ca43321

File tree

2 files changed

+62
-13
lines changed

2 files changed

+62
-13
lines changed

media/auth.js

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
// Add console.log to check DOMContentLoaded registration and call
12
(function () {
23
document.addEventListener("DOMContentLoaded", function () {
4+
console.log("DOMContentLoaded event registered and called");
35
const vscode = acquireVsCodeApi();
46
const authButton = document.getElementById("authButton");
57
const messageBox = document.getElementById("messageBox");
@@ -13,9 +15,15 @@
1315
const authenticatedMessage = document.getElementById(
1416
"authenticatedMessage"
1517
);
18+
// Debug: initial classList of loginForm
19+
if (loginForm) {
20+
console.log("loginForm.classList initial:", Array.from(loginForm.classList));
21+
}
1622

17-
window.addEventListener("message", (event) => {
23+
window.addEventListener("message", (event) => {
24+
console.log("window message event received (auth button enable/disable):", event.data);
1825
const message = event.data;
26+
console.log("parsed message object (auth button enable/disable):", message);
1927
if (message.command === "disableAuthButton") {
2028
const authButton = document.getElementById("authButton");
2129
if (authButton) {
@@ -45,6 +53,7 @@
4553

4654
document.querySelectorAll('input[name="authMethod"]').forEach((radio) => {
4755
radio.addEventListener("change", (e) => {
56+
console.log("authMethod radio change event:", e.target.value);
4857
const isOAuth = e.target.value === "oauth";
4958
document
5059
.getElementById("oauthForm")
@@ -58,6 +67,7 @@
5867
});
5968

6069
authButton.addEventListener("click", () => {
70+
console.log("authButton clicked");
6171
messageBox.style.display = "none";
6272

6373
vscode.postMessage({
@@ -71,12 +81,15 @@
7181
});
7282

7383
function handleInputApiKey() {
84+
console.log("apiKey input event");
7485
messageBox.style.display = "none";
7586
isBtnDisabled();
7687
}
7788
apiKeyInput.addEventListener("input", handleInputApiKey);
7889

7990
function isBtnDisabled() {
91+
// Add log to check when isBtnDisabled is called
92+
console.log("isBtnDisabled called");
8093
const authMethod = document.querySelector(
8194
"input[name='authMethod']:checked"
8295
).value;
@@ -91,6 +104,7 @@
91104
}
92105

93106
function showMessage(text, isError) {
107+
console.log("showMessage called:", text, isError);
94108
document.getElementById("messageText").textContent = text;
95109
messageBox.style.display = "flex";
96110
if (isError) {
@@ -107,7 +121,9 @@
107121
}
108122

109123
window.addEventListener("message", (event) => {
124+
console.log("window message event received (auth state, loader, etc):", event.data);
110125
const message = event.data;
126+
console.log("parsed message object (auth state, loader, etc):", message);
111127
if (message.type === "setAuthState") {
112128
const logoutButton = document.getElementById("logoutButton");
113129

@@ -116,15 +132,18 @@
116132
authenticatedMessage.classList.remove("hidden");
117133
logoutButton.classList.remove("hidden");
118134
messageBox.style.display = "none";
135+
console.log("loginForm.classList after authenticated:", Array.from(loginForm.classList));
119136
} else {
120137
loginForm.classList.remove("hidden");
121138
authenticatedMessage.classList.add("hidden");
122139
logoutButton.classList.add("hidden");
140+
console.log("loginForm.classList after unauthenticated:", Array.from(loginForm.classList));
123141
}
124142
logoutButton.replaceWith(logoutButton.cloneNode(true));
125143
document
126144
.getElementById("logoutButton")
127145
.addEventListener("click", () => {
146+
console.log("logoutButton clicked");
128147
vscode.postMessage({ command: "requestLogoutConfirmation" });
129148
});
130149
} else if (message.type === "showLoader") {
@@ -173,8 +192,10 @@
173192
) {
174193
window.addEventListener("message", (event) => {
175194
if (event.data.type === messageType) {
195+
console.log(`Autocomplete message received for ${messageType}:`, event.data.items);
176196
const items = event.data.items;
177197
inputElement.addEventListener("input", function () {
198+
console.log(`Autocomplete input event for ${messageType}:`, this.value);
178199
const query = this.value.toLowerCase();
179200
listElement.innerHTML = "";
180201
if (validateCallback) {
@@ -205,8 +226,9 @@
205226
filteredItems.forEach((item) => {
206227
const div = document.createElement("div");
207228
div.classList.add("autocomplete-item");
208-
div.innerHTML = `<i class="fas fa-check-circle"></i> ${item}`;
229+
div.innerHTML = '<i class="fas fa-check-circle"></i> ' + item;
209230
div.addEventListener("click", function () {
231+
console.log(`Autocomplete item clicked for ${messageType}:`, item);
210232
inputElement.value = item;
211233
listElement.innerHTML = "";
212234
listElement.style.display = "none";
@@ -220,6 +242,8 @@
220242
});
221243

222244
document.addEventListener("click", function (event) {
245+
// Add log for document click in autocomplete
246+
console.log("Document click event for autocomplete");
223247
if (event.target !== inputElement) {
224248
listElement.innerHTML = "";
225249
listElement.style.display = "none";
@@ -231,9 +255,10 @@
231255
});
232256
}
233257

234-
setupAutocomplete(urlInput, urlsList, "setUrls", (query) =>
235-
vscode.postMessage({ command: "validateURL", baseUri: query })
236-
);
258+
setupAutocomplete(urlInput, urlsList, "setUrls", (query) => {
259+
console.log("setupAutocomplete validateCallback for setUrls:", query);
260+
vscode.postMessage({ command: "validateURL", baseUri: query });
261+
});
237262
setupAutocomplete(tenantInput, tenantList, "setTenants");
238263
});
239264
})();

src/webview/authenticationWebview.ts

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,33 +37,43 @@ export class AuthenticationWebview {
3737
}
3838

3939
private async initialize() {
40-
this._panel.webview.postMessage({ type: "showLoader" });
40+
console.log("[AuthenticationWebview.initialize] posting showLoader message");
41+
await this._panel.webview.postMessage({ type: "showLoader" });
4142
const authService = AuthService.getInstance(this.context, this.logs);
4243
let hasToken = false;
4344

4445
try {
46+
console.log("[AuthenticationWebview.initialize] validating and updating auth state...");
4547
hasToken = await authService.validateAndUpdateState();
48+
console.log("[AuthenticationWebview.initialize] validateAndUpdateState result:", hasToken);
4649
} catch (error) {
4750
console.error("Error validating authentication state:", error);
4851
}
49-
this._panel.webview.postMessage({
50-
type: "setAuthState",
51-
isAuthenticated: hasToken,
52-
});
52+
const setAuthStateMessage = { type: "setAuthState", isAuthenticated: hasToken };
53+
console.log("[AuthenticationWebview.initialize] posting setAuthState message:", setAuthStateMessage);
54+
await this._panel.webview.postMessage(setAuthStateMessage);
5355

5456
const urls = this.getURIs(this.context);
55-
this._panel.webview.postMessage({ type: "setUrls", items: urls });
57+
const setUrlsMessage = { type: "setUrls", items: urls };
58+
console.log("[AuthenticationWebview.initialize] posting setUrls message:", setUrlsMessage);
59+
await this._panel.webview.postMessage(setUrlsMessage);
5660

5761
const tenants = this.getTenants(this.context);
58-
this._panel.webview.postMessage({ type: "setTenants", items: tenants });
59-
this._panel.webview.postMessage({ type: "hideLoader" });
62+
const setTenantsMessage = { type: "setTenants", items: tenants };
63+
console.log("[AuthenticationWebview.initialize] posting setTenants message:", setTenantsMessage);
64+
await this._panel.webview.postMessage(setTenantsMessage);
65+
console.log("[AuthenticationWebview.initialize] posting hideLoader message");
66+
await this._panel.webview.postMessage({ type: "hideLoader" });
6067
}
6168

6269
public static show(context: vscode.ExtensionContext, webViewCommand: WebViewCommand, logs?: Logs) {
70+
console.log("[AuthenticationWebview.show] invoked");
6371
if (AuthenticationWebview.currentPanel) {
72+
console.log("[AuthenticationWebview.show] revealing existing panel");
6473
AuthenticationWebview.currentPanel._panel.reveal(vscode.ViewColumn.One);
6574
return;
6675
}
76+
console.log("[AuthenticationWebview.show] creating new webview panel");
6777
const panel = vscode.window.createWebviewPanel(
6878
AuthenticationWebview.viewType,
6979
"Checkmarx One Authentication",
@@ -74,12 +84,14 @@ export class AuthenticationWebview {
7484
localResourceRoots: [context.extensionUri],
7585
}
7686
);
87+
console.log("[AuthenticationWebview.show] webview panel created, instantiating AuthenticationWebview");
7788
AuthenticationWebview.currentPanel = new AuthenticationWebview(
7889
panel,
7990
context,
8091
logs,
8192
webViewCommand
8293
);
94+
console.log("[AuthenticationWebview.show] AuthenticationWebview instance created and stored in currentPanel");
8395
}
8496

8597
// eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -114,6 +126,7 @@ export class AuthenticationWebview {
114126
}
115127

116128
private _getWebviewContent(): string {
129+
console.log("[AuthenticationWebview._getWebviewContent] generating webview HTML");
117130
const styleBootStrap = this.setWebUri(
118131
"media",
119132
"bootstrap",
@@ -131,6 +144,17 @@ export class AuthenticationWebview {
131144
const successIcon = this.setWebUri("media", "icons", "success.svg");
132145
const errorIcon = this.setWebUri("media", "icons", "error.svg");
133146
const nonce = getNonce();
147+
console.log("[AuthenticationWebview._getWebviewContent] resource URIs", {
148+
styleBootStrap: styleBootStrap.toString(),
149+
scriptBootStrap: scriptBootStrap.toString(),
150+
scriptUri: scriptUri.toString(),
151+
styleAuth: styleAuth.toString(),
152+
loginIcon: loginIcon.toString(),
153+
logoutIcon: logoutIcon.toString(),
154+
successIcon: successIcon.toString(),
155+
errorIcon: errorIcon.toString(),
156+
nonce
157+
});
134158

135159
return `<!DOCTYPE html>
136160
<html>

0 commit comments

Comments
 (0)