mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-24 07:14:04 +00:00
feat: add mtls authen method in http/http keyword
This commit is contained in:
parent
faa78443d6
commit
43941fa2c6
3 changed files with 51 additions and 15 deletions
|
@ -131,6 +131,9 @@ class Monitor extends BeanModel {
|
||||||
mqttPassword: this.mqttPassword,
|
mqttPassword: this.mqttPassword,
|
||||||
authWorkstation: this.authWorkstation,
|
authWorkstation: this.authWorkstation,
|
||||||
authDomain: this.authDomain,
|
authDomain: this.authDomain,
|
||||||
|
tlsCa: this.tlsCa,
|
||||||
|
tlsCert: this.tlsCert,
|
||||||
|
tlsKey: this.tlsKey,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,6 +311,18 @@ class Monitor extends BeanModel {
|
||||||
options.httpsAgent = new https.Agent(httpsAgentOptions);
|
options.httpsAgent = new https.Agent(httpsAgentOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.auth_method === "mtls") {
|
||||||
|
if (this.tlsCert !== null && this.tlsCert !== "") {
|
||||||
|
options.httpsAgent.options.cert = Buffer.from(this.tlsCert);
|
||||||
|
}
|
||||||
|
if (this.tlsCa !== null && this.tlsCa !== "") {
|
||||||
|
options.httpsAgent.options.ca = Buffer.from(this.tlsCa);
|
||||||
|
}
|
||||||
|
if (this.tlsKey !== null && this.tlsKey !== "") {
|
||||||
|
options.httpsAgent.options.key = Buffer.from(this.tlsKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.debug("monitor", `[${this.name}] Axios Options: ${JSON.stringify(options)}`);
|
log.debug("monitor", `[${this.name}] Axios Options: ${JSON.stringify(options)}`);
|
||||||
log.debug("monitor", `[${this.name}] Axios Request`);
|
log.debug("monitor", `[${this.name}] Axios Request`);
|
||||||
|
|
||||||
|
@ -813,7 +828,6 @@ class Monitor extends BeanModel {
|
||||||
domain: this.authDomain,
|
domain: this.authDomain,
|
||||||
workstation: this.authWorkstation ? this.authWorkstation : undefined
|
workstation: this.authWorkstation ? this.authWorkstation : undefined
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
res = await axios.request(options);
|
res = await axios.request(options);
|
||||||
}
|
}
|
||||||
|
|
|
@ -688,6 +688,9 @@ let needSetup = false;
|
||||||
bean.headers = monitor.headers;
|
bean.headers = monitor.headers;
|
||||||
bean.basic_auth_user = monitor.basic_auth_user;
|
bean.basic_auth_user = monitor.basic_auth_user;
|
||||||
bean.basic_auth_pass = monitor.basic_auth_pass;
|
bean.basic_auth_pass = monitor.basic_auth_pass;
|
||||||
|
bean.tlsCa = monitor.tlsCa;
|
||||||
|
bean.tlsCert = monitor.tlsCert;
|
||||||
|
bean.tlsKey = monitor.tlsKey;
|
||||||
bean.interval = monitor.interval;
|
bean.interval = monitor.interval;
|
||||||
bean.retryInterval = monitor.retryInterval;
|
bean.retryInterval = monitor.retryInterval;
|
||||||
bean.resendInterval = monitor.resendInterval;
|
bean.resendInterval = monitor.resendInterval;
|
||||||
|
|
|
@ -531,9 +531,27 @@
|
||||||
<option value="ntlm">
|
<option value="ntlm">
|
||||||
NTLM
|
NTLM
|
||||||
</option>
|
</option>
|
||||||
|
<option value="mtls">
|
||||||
|
mTLS
|
||||||
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="monitor.authMethod && monitor.authMethod !== null ">
|
<template v-if="monitor.authMethod && monitor.authMethod !== null ">
|
||||||
|
<template v-if="monitor.authMethod === 'mtls' ">
|
||||||
|
<div class="my-3">
|
||||||
|
<label for="tls" class="form-label">{{ $t("Cert") }}</label>
|
||||||
|
<textarea id="tls-cert" v-model="monitor.tlsCert" class="form-control" :placeholder="$t('Cert body')" required></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="my-3">
|
||||||
|
<label for="tls" class="form-label">{{ $t("Key") }}</label>
|
||||||
|
<textarea id="tls-key" v-model="monitor.tlsKey" class="form-control" :placeholder="$t('Key body')" required></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="my-3">
|
||||||
|
<label for="tls" class="form-label">{{ $t("CA") }}</label>
|
||||||
|
<textarea id="tls-ca" v-model="monitor.tlsCa" class="form-control" :placeholder="$t('Server CA')"></textarea>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
<div class="my-3">
|
<div class="my-3">
|
||||||
<label for="basicauth" class="form-label">{{ $t("Username") }}</label>
|
<label for="basicauth" class="form-label">{{ $t("Username") }}</label>
|
||||||
<input id="basicauth-user" v-model="monitor.basic_auth_user" type="text" class="form-control" :placeholder="$t('Username')">
|
<input id="basicauth-user" v-model="monitor.basic_auth_user" type="text" class="form-control" :placeholder="$t('Username')">
|
||||||
|
@ -556,6 +574,7 @@
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- gRPC Options -->
|
<!-- gRPC Options -->
|
||||||
<template v-if="monitor.type === 'grpc-keyword' ">
|
<template v-if="monitor.type === 'grpc-keyword' ">
|
||||||
|
|
Loading…
Reference in a new issue