mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-01-27 23:07:08 -05:00
fix(edit-monitor): store headers as JSON
This commit is contained in:
parent
fba4f86552
commit
d71d27220b
@ -99,31 +99,6 @@ class Monitor extends BeanModel {
|
|||||||
return JSON.parse(this.accepted_statuscodes_json);
|
return JSON.parse(this.accepted_statuscodes_json);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert header string into an object:
|
|
||||||
* eg:
|
|
||||||
*
|
|
||||||
* Authorization: Basic <credentials>
|
|
||||||
* Content-Type: application/json
|
|
||||||
*
|
|
||||||
* into
|
|
||||||
*
|
|
||||||
* {
|
|
||||||
* "Authorization": "Basic <credentials>",
|
|
||||||
* "Content-Type": "application/json"
|
|
||||||
* }
|
|
||||||
**/
|
|
||||||
getParsedHeaders() {
|
|
||||||
if (!this.headers || !this.headers.includes(":")) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
return Object.fromEntries(this.headers.split("\n").map(header => {
|
|
||||||
const trimmedHeader = header.trim();
|
|
||||||
const firstColonIndex = trimmedHeader.indexOf(":");
|
|
||||||
return [trimmedHeader.slice(0, firstColonIndex), trimmedHeader.slice(firstColonIndex + 1) || ""];
|
|
||||||
}).filter(arr => !!arr[0] && !!arr[1]));
|
|
||||||
}
|
|
||||||
|
|
||||||
start(io) {
|
start(io) {
|
||||||
let previousBeat = null;
|
let previousBeat = null;
|
||||||
let retries = 0;
|
let retries = 0;
|
||||||
@ -173,7 +148,7 @@ class Monitor extends BeanModel {
|
|||||||
headers: {
|
headers: {
|
||||||
"Accept": "*/*",
|
"Accept": "*/*",
|
||||||
"User-Agent": "Uptime-Kuma/" + version,
|
"User-Agent": "Uptime-Kuma/" + version,
|
||||||
...this.getParsedHeaders(),
|
...JSON.parse(this.headers),
|
||||||
},
|
},
|
||||||
httpsAgent: new https.Agent({
|
httpsAgent: new https.Agent({
|
||||||
maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940)
|
maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940)
|
||||||
|
@ -285,8 +285,8 @@ export default {
|
|||||||
Body: "Body",
|
Body: "Body",
|
||||||
Headers: "Headers",
|
Headers: "Headers",
|
||||||
PushUrl: "Push URL",
|
PushUrl: "Push URL",
|
||||||
HeadersInvalidFormat: "Headers do not have a valid format: \"key: value <new line> key: value <new line>...\"",
|
HeadersInvalidFormat: "The request headers are not valid JSON: ",
|
||||||
BodyInvalidFormat: "The request body is not valid JSON: ",
|
BodyInvalidFormat: "The request body is not valid JSON: ",
|
||||||
BodyPlaceholder: "{\n\t\"id\": 124357,\n\t\"username\": \"admin\",\n\t\"password\": \"myAdminPassword\"\n}",
|
BodyPlaceholder: "{\n\t\"id\": 124357,\n\t\"username\": \"admin\",\n\t\"password\": \"myAdminPassword\"\n}",
|
||||||
HeadersPlaceholder: "Authorization: Bearer abc123\nContent-Type: application/json",
|
HeadersPlaceholder: "{\n\t\"Authorization\": \"Bearer abc123\",\n\t\"Content-Type\": \"application/json\"\n}",
|
||||||
};
|
};
|
||||||
|
@ -202,8 +202,8 @@ export default {
|
|||||||
Body: "Body",
|
Body: "Body",
|
||||||
Headers: "Headers",
|
Headers: "Headers",
|
||||||
PushUrl: "Push URL",
|
PushUrl: "Push URL",
|
||||||
HeadersInvalidFormat: "Headers hebben een incorrect formaat: \"key: waarde <new line> key: waarde <new line>...\"",
|
HeadersInvalidFormat: "The request headers is geen geldige JSON: ",
|
||||||
BodyInvalidFormat: "De request body is geen geldige JSON: ",
|
BodyInvalidFormat: "De request body is geen geldige JSON: ",
|
||||||
BodyPlaceholder: "{\n\t\"id\": 124357,\n\t\"gebruikersnaam\": \"admin\",\n\t\"wachtwoord\": \"mijnAdminWachtwoord\"\n}",
|
BodyPlaceholder: "{\n\t\"id\": 124357,\n\t\"gebruikersnaam\": \"admin\",\n\t\"wachtwoord\": \"mijnAdminWachtwoord\"\n}",
|
||||||
HeadersPlaceholder: "Authorization: Bearer abc123\nContent-Type: application/json",
|
HeadersPlaceholder: "{\n\t\"Authorization\": \"Bearer abc123\",\n\t\"Content-Type\": \"application/json\"\n}",
|
||||||
};
|
};
|
||||||
|
@ -442,8 +442,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.monitor.headers) {
|
if (this.monitor.headers) {
|
||||||
if (!/^([^:]+:.*)([\s]+[^:]+:.*)*$/g.test(this.monitor.headers)) {
|
try {
|
||||||
toast.error(this.$t("HeadersInvalidFormat"));
|
JSON.parse(this.monitor.headers);
|
||||||
|
} catch (err) {
|
||||||
|
toast.error(this.$t("HeadersInvalidFormat") + err.message);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user