aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2024-12-13 17:40:49 +0100
committerGravatar Christian Hesse <mail@eworm.de>2024-12-17 13:21:19 +0100
commitd1b9b1b410933e0510845c245f742a7df172dc61 (patch)
tree2e3dc2f104de74c57dcc713c4a2364c4f3a9c8b8
parenta7878d664f51ed77a574a5d360c9c53863d0d488 (diff)
mod/notification-ntfy: support authentication with bearer token
Closes: https://github.com/eworm-de/routeros-scripts/issues/86
-rw-r--r--doc/mod/notification-ntfy.md2
-rw-r--r--global-config.rsc1
-rw-r--r--mod/notification-ntfy.rsc6
3 files changed, 9 insertions, 0 deletions
diff --git a/doc/mod/notification-ntfy.md b/doc/mod/notification-ntfy.md
index 5393d44..04dee35 100644
--- a/doc/mod/notification-ntfy.md
+++ b/doc/mod/notification-ntfy.md
@@ -52,6 +52,8 @@ basic authentication. Configure `NtfyServerUser` and `NtfyServerPass` for this.
Even authentication via access token is possible, adding it as password with
a blank username.
+Also available is `NtfyServerToken` to add a bearer token for authentication.
+
For a custom service installing an additional certificate may be required.
You may want to install that certificate manually, after finding the
[certificate name from browser](../../CERTIFICATES.md).
diff --git a/global-config.rsc b/global-config.rsc
index 5292853..0c8f738 100644
--- a/global-config.rsc
+++ b/global-config.rsc
@@ -58,6 +58,7 @@
:global NtfyServer "ntfy.sh";
:global NtfyServerUser [];
:global NtfyServerPass [];
+:global NtfyServerToken [];
:global NtfyTopic "";
# It is possible to override e-mail, Telegram, Matrix and Ntfy setting
diff --git a/mod/notification-ntfy.rsc b/mod/notification-ntfy.rsc
index 7e0234b..7e4eaf0 100644
--- a/mod/notification-ntfy.rsc
+++ b/mod/notification-ntfy.rsc
@@ -67,6 +67,8 @@
:global NtfyServerOverride;
:global NtfyServerPass;
:global NtfyServerPassOverride;
+ :global NtfyServerToken;
+ :global NtfyServerTokenOverride;
:global NtfyServerUser;
:global NtfyServerUserOverride;
:global NtfyTopic;
@@ -83,6 +85,7 @@
:local Server [ $EitherOr ($NtfyServerOverride->($Notification->"origin")) $NtfyServer ];
:local User [ $EitherOr ($NtfyServerUserOverride->($Notification->"origin")) $NtfyServerUser ];
:local Pass [ $EitherOr ($NtfyServerPassOverride->($Notification->"origin")) $NtfyServerPass ];
+ :local Token [ $EitherOr ($NtfyServerTokenOverride->($Notification->"origin")) $NtfyServerToken ];
:local Topic [ $EitherOr ($NtfyTopicOverride->($Notification->"origin")) $NtfyTopic ];
:if ([ :len $Topic ] = 0) do={
@@ -93,6 +96,9 @@
:local Headers ({ [ $FetchUserAgentStr ($Notification->"origin") ]; \
("Priority: " . [ $IfThenElse ($Notification->"silent") "low" "default" ]); \
("Title: " . "[" . $IdentityExtra . $Identity . "] " . ($Notification->"subject")) });
+ :if ([ :len $Token ] > 0) do={
+ :set Headers ($Headers, ("Authorization: Bearer " . $Token));
+ }
:local Text (($Notification->"message") . "\n");
:if ([ :len ($Notification->"link") ] > 0) do={
:set Text ($Text . "\n" . [ $SymbolForNotification "link" ] . ($Notification->"link"));