From 4c4d4e2351a4f959f7f515398e7c1fc945a0cbcc Mon Sep 17 00:00:00 2001 From: Zhihe Li Date: Mon, 26 Sep 2022 12:39:49 -0400 Subject: [PATCH] Fix bug dc token env (#1350) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Boundary password as env variable. WIP * Add Boundary password as env variable to the spawn process * fix: 🐛 Fix token flag when connecting a target Fix a token flag when connecting to a target. Now it uses an env variable * Add rest env variables to child processes Co-authored-by: Carlos Alcaide Corvo --- .../electron-app/src/helpers/spawn-promise.js | 9 +++++++-- ui/desktop/electron-app/src/models/session.js | 20 ++++++++++--------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ui/desktop/electron-app/src/helpers/spawn-promise.js b/ui/desktop/electron-app/src/helpers/spawn-promise.js index c1dd3d699..384f41d49 100644 --- a/ui/desktop/electron-app/src/helpers/spawn-promise.js +++ b/ui/desktop/electron-app/src/helpers/spawn-promise.js @@ -25,9 +25,14 @@ module.exports = { * @param {string} command * @return {Promise} */ - spawnAsyncJSONPromise(command) { + spawnAsyncJSONPromise(command, token) { return new Promise((resolve, reject) => { - const childProcess = spawn(path(), command); + const childProcess = spawn(path(), command, { + env: { + ...process.env, + BOUNDARY_TOKEN: token + } + }); let outputStream = ''; let errorStream = ''; diff --git a/ui/desktop/electron-app/src/models/session.js b/ui/desktop/electron-app/src/models/session.js index e52a5419c..360363771 100644 --- a/ui/desktop/electron-app/src/models/session.js +++ b/ui/desktop/electron-app/src/models/session.js @@ -48,13 +48,16 @@ class Session { */ start() { const command = this.cliCommand(); - return spawnAsyncJSONPromise(command).then((spawnedSession) => { - this.#process = spawnedSession.childProcess; - this.#proxyDetails = spawnedSession.response; - this.#process = spawnedSession.childProcess; - this.#id = this.#proxyDetails.session_id; - return this.#proxyDetails; - }); + const sanitizedToken = sanitizer.base62EscapeAndValidate(this.#token); + return spawnAsyncJSONPromise(command, sanitizedToken).then( + (spawnedSession) => { + this.#process = spawnedSession.childProcess; + this.#proxyDetails = spawnedSession.response; + this.#process = spawnedSession.childProcess; + this.#id = this.#proxyDetails.session_id; + return this.#proxyDetails; + } + ); } /** @@ -87,14 +90,13 @@ class Session { cliCommand() { const sanitized = { target_id: sanitizer.base62EscapeAndValidate(this.#targetId), - token: sanitizer.base62EscapeAndValidate(this.#token), addr: sanitizer.urlValidate(this.#addr), }; const command = [ 'connect', `-target-id=${sanitized.target_id}`, - `-token=${sanitized.token}`, + `-token=env://BOUNDARY_TOKEN`, `-addr=${sanitized.addr}`, '-format=json', ];