Browse Source

Merge branch 'main' into 374-empty-default-pass

wunter8 3 years ago
parent
commit
dfec18be3d
3 changed files with 34 additions and 1 deletions
  1. 21 0
      docs/publish.md
  2. 5 0
      docs/releases.md
  3. 8 1
      web/src/components/SubscribeDialog.js

+ 21 - 0
docs/publish.md

@@ -2678,6 +2678,27 @@ Here's a simple example:
     ]));
     ```
 
+#### Auth Query Param
+In some instances, you may want to send auth credentials in the URL (e.g., a GET webhook or a JSON POST request). You
+can use the `auth` query parameter. Set the value to the base64 encoding of the value of the `Authorization` header
+and strip any trailing `=`. **Be sure to only send auth credentials over an HTTPS connection**
+
+Here is an example:
+```
+    Step 1. base64(user:pass)             -> base64(testuser:fakepassword)                    -> dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk
+    Step 2. Authorization header          -> Basic base64(testuser:fakepassword)              -> Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk
+    Step 3. base64(Authorization header)  -> base64(Basic dGVzdHVzZXI6ZmFrZXBhc3N3b3Jk)       -> QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw==
+    Step 4. remove trailing `=` (if any)  -> QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw== -> QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw
+    Step 5. add query param to URL        -> https://ntfy.sh/topic                            -> https://ntfy.sh/topic?auth=QmFzaWMgZEdWemRIVnpaWEk2Wm1GclpYQmhjM04zYjNKaw
+```
+
+!!! note
+    Do NOT remove trailing `=` after step 2
+
+The following command will generate the appropriate value for you on *nix systems:
+
+```echo -n "Basic `echo -n 'testuser:fakepassword' | base64`" | base64 | tr -d '='```
+
 ### Message caching
 !!! info
     If `Cache: no` is used, messages will only be delivered to connected subscribers, and won't be re-delivered if a 

+ 5 - 0
docs/releases.md

@@ -4,10 +4,15 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release
 
 ## ntfy server v1.29.0 (UNRELEASED)
 
+**Features:**
+
+* Allow IP CIDRs in `visitor-request-limit-exempt-hosts` ([#423](https://github.com/binwiederhier/ntfy/issues/423), thanks to [@karmanyaahm](https://github.com/karmanyaahm))
+
 **Bug fixes + maintenance:**
 
 * Subscriptions can now have a display name ([#370](https://github.com/binwiederhier/ntfy/issues/370), thanks to [@tfheen](https://github.com/tfheen) for reporting)
 * Bump Go version to Go 18.x ([#422](https://github.com/binwiederhier/ntfy/issues/422))
+* Web: Strip trailing slash when subscribing ([#428](https://github.com/binwiederhier/ntfy/issues/428), thanks to [@raining1123](https://github.com/raining1123) for reporting, and [@wunter8](https://github.com/wunter8) for fixing)
 * Allow empty passwords in `client.yml` ([#374](https://github.com/binwiederhier/ntfy/issues/374), thanks to [@cyqsimon](https://github.com/cyqsimon) for reporting, and [@wunter8](https://github.com/wunter8) for fixing)
 
 **Documentation:**

+ 8 - 1
web/src/components/SubscribeDialog.js

@@ -90,6 +90,13 @@ const SubscribePage = (props) => {
             return validTopic(topic) && !isExistingTopicUrl;
         }
     })();
+    const updateBaseUrl = (ev, newVal) => {
+        if (validUrl(newVal)) {
+          props.setBaseUrl(newVal.replace(/\/$/, '')); // strip trailing slash after https?://
+        } else {
+          props.setBaseUrl(newVal);
+        }
+    };
     return (
         <>
             <DialogTitle>{t("subscribe_dialog_subscribe_title")}</DialogTitle>
@@ -128,7 +135,7 @@ const SubscribePage = (props) => {
                     options={existingBaseUrls}
                     sx={{ maxWidth: 400 }}
                     inputValue={props.baseUrl}
-                    onInputChange={(ev, newVal) => props.setBaseUrl(newVal)}
+                    onInputChange={updateBaseUrl}
                     renderInput={ (params) =>
                         <TextField
                             {...params}