URI-encode secret before appending to websocket URL

This commit is contained in:
Joker_ 2020-07-12 23:39:03 +08:00
parent 9de394eedf
commit 19dfbf7f2b
No known key found for this signature in database
GPG key ID: 9E3DD1608C6D776B
3 changed files with 9 additions and 9 deletions

View file

@ -47,7 +47,7 @@ function getWsUrl(apiConfig) {
const { hostname, port, secret } = apiConfig;
let qs = '';
if (typeof secret === 'string' && secret !== '') {
qs += '?token=' + secret;
qs += '?token=' + encodeURIComponent(secret);
}
return `ws://${hostname}:${port}${endpoint}${qs}`;
}

View file

@ -63,7 +63,7 @@ function getWsUrl(apiConfig) {
const { hostname, port, secret, logLevel } = apiConfig;
let qs = '?level=' + logLevel;
if (typeof secret === 'string' && secret !== '') {
qs += '&token=' + secret;
qs += '&token=' + encodeURIComponent(secret);
}
return `ws://${hostname}:${port}${endpoint}${qs}`;
}
@ -78,14 +78,14 @@ function fetchLogs(apiConfig, appendLog) {
wsState = 1;
const url = getWsUrl(apiConfig);
const ws = new WebSocket(url);
ws.addEventListener('error', function(_ev) {
ws.addEventListener('error', function (_ev) {
wsState = 3;
});
ws.addEventListener('close', function(_ev) {
ws.addEventListener('close', function (_ev) {
wsState = 3;
fetchLogsWithFetch(apiConfig, appendLog);
});
ws.addEventListener('message', function(event) {
ws.addEventListener('message', function (event) {
appendData(event.data, appendLog);
});
}
@ -116,13 +116,13 @@ function fetchLogsWithFetch(apiConfig, appendLog) {
const { url, init } = getURLAndInit(apiConfig);
fetch(url + endpoint + '?level=' + apiConfig.logLevel, {
...init,
signal
signal,
}).then(
response => {
(response) => {
const reader = response.body.getReader();
pump(reader, appendLog);
},
err => {
(err) => {
fetched = false;
if (signal.aborted) return;

View file

@ -73,7 +73,7 @@ function getWsUrl(apiConfig) {
const { hostname, port, secret } = apiConfig;
let qs = '';
if (typeof secret === 'string' && secret !== '') {
qs += '?token=' + secret;
qs += '?token=' + encodeURIComponent(secret);
}
return `ws://${hostname}:${port}${endpoint}${qs}`;
}