From d1144038a54f213afea3aeb0dfc158dc835846ad Mon Sep 17 00:00:00 2001
From: Alex <apuret@e-biz.fr>
Date: Mon, 27 Jul 2020 11:40:14 +0200
Subject: [PATCH] fix: load keycloak config

---
 plugins/deadlock-extension/src/extension.ts   | 25 ++++++++++++-------
 .../deadlock-extension/src/keycloakManager.js |  9 +++----
 2 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/plugins/deadlock-extension/src/extension.ts b/plugins/deadlock-extension/src/extension.ts
index 46d36914..66446abe 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 0d60dc06..b6c4dbd3 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) {
-- 
GitLab