diff --git a/plugins/deadlock-extension/src/extension.ts b/plugins/deadlock-extension/src/extension.ts index 46d36914134c5bf18ca23b7b4bd48effca6cabcd..66446abe352f896702f0f039dfe5c8d288627670 100644 --- a/plugins/deadlock-extension/src/extension.ts +++ b/plugins/deadlock-extension/src/extension.ts @@ -5,7 +5,7 @@ import { Uri } from 'vscode'; const marked = require('marked'); import keycloakManager from './keycloakManager'; -import { USER_CHALLENGE_PATH } from './config'; +import { USER_CHALLENGE_PATH, KEYCLOAK_CONFIG_PATH } from './config'; interface UserChallengeConfig { paths: Record<string, string>; @@ -38,12 +38,19 @@ function init() { }); } - keycloakManager.loadKeycloakIfNecessary(() => { - console.log('keycloak is ready'); - if (keycloakManager.getKeycloak() && keycloakManager.getKeycloak().token) { - console.log(keycloakManager.getKeycloak().token); - } - }); + vscode.workspace + .openTextDocument(Uri.parse(KEYCLOAK_CONFIG_PATH)) + .then((keycloakConfig) => { + console.log('config', keycloakConfig); + keycloakConfig = JSON.parse(keycloakConfig.getText()); + console.log('config', keycloakConfig); + keycloakManager.loadKeycloakIfNecessary(keycloakConfig, () => { + if (keycloakManager.getKeycloak() && keycloakManager.getKeycloak().token) { + console.log('token', keycloakManager.getKeycloak().token); + } + }); + }); + } export function activate(context: vscode.ExtensionContext) { @@ -208,8 +215,8 @@ class DeadlockPanel { and only allow scripts that have a specific nonce. --> <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${ - webview.cspSource - } https:; script-src 'nonce-${nonce}';"> + webview.cspSource + } https:; script-src 'nonce-${nonce}';"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Deadlock</title> diff --git a/plugins/deadlock-extension/src/keycloakManager.js b/plugins/deadlock-extension/src/keycloakManager.js index 0d60dc06c04092bdd94ac34bf2e196854d3f33af..b6c4dbd35bc98deb862c82185523ac8c5de657c8 100644 --- a/plugins/deadlock-extension/src/keycloakManager.js +++ b/plugins/deadlock-extension/src/keycloakManager.js @@ -1,5 +1,4 @@ import Keycloak from 'keycloak-js/dist/keycloak'; -import { KEYCLOAK_CONFIG_PATH } from './config'; let keycloak; let isAuthenticated = false; @@ -15,9 +14,9 @@ keycloakManager.resetKeycloak = () => { keycloak = undefined; }; -keycloakManager.loadKeycloakIfNecessary = (cb) => { +keycloakManager.loadKeycloakIfNecessary = (config, cb) => { if (!keycloakManager.getKeycloak()) { - keycloakManager.loadKeycloak().then(() => cb()); + keycloakManager.loadKeycloak(config).then(() => cb()); } else { cb(); } @@ -29,8 +28,8 @@ keycloakManager.logout = () => keycloakManager.getKeycloak().logout(); keycloakManager.getAvatar = () => keycloakManager.getKeycloak().tokenParsed.avatar_url; -keycloakManager.loadKeycloak = () => { - let keycloak = Keycloak(KEYCLOAK_CONFIG_PATH); +keycloakManager.loadKeycloak = (config) => { + let keycloak = Keycloak(config); return new Promise((resolve, reject) => { keycloak.init({ onLoad: 'check-sso' }).success((authenticated) => { if (authenticated) {