diff options
author | Theodore R. Smith <theodore@phpexperts.pro> | 2020-12-27 09:13:11 -0600 |
---|---|---|
committer | Theodore R. Smith <theodore@phpexperts.pro> | 2020-12-27 14:29:54 -0600 |
commit | 8e76aa1d75aebdadd0451d2e57c9bb65d1e75b9a (patch) | |
tree | 3b9809e75c8e8f9044080182801f4516a11fe242 /server/tools | |
parent | f88453e2335ec9140df927d3cca727d2a3a4ab70 (diff) | |
download | PeerTube-8e76aa1d75aebdadd0451d2e57c9bb65d1e75b9a.tar.gz PeerTube-8e76aa1d75aebdadd0451d2e57c9bb65d1e75b9a.tar.zst PeerTube-8e76aa1d75aebdadd0451d2e57c9bb65d1e75b9a.zip |
(#3520) [cli] Hardened `auth add`: No longer fails with extraneous characters.
**The Solution:**
I have hardened `auth add` by stripping out everything from the third '/' to the end of the instance URL.
**The Problem:**
When adding an authorization for the peertube-cli, before this commit you could not have anything after the domain_name:port.
For instance, if there was a trailing / in your instance URL, before this commit it will always fail with
expected 200 "OK", got 404 "Not Found".
It took me over 20 minutes to figure out that this was the problem.
See Issue #3091.
Diffstat (limited to 'server/tools')
-rw-r--r-- | server/tools/peertube-auth.ts | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/server/tools/peertube-auth.ts b/server/tools/peertube-auth.ts index 1a4fae4ce..7673b92cd 100644 --- a/server/tools/peertube-auth.ts +++ b/server/tools/peertube-auth.ts | |||
@@ -80,8 +80,19 @@ program | |||
80 | } | 80 | } |
81 | } | 81 | } |
82 | }, async (_, result) => { | 82 | }, async (_, result) => { |
83 | const stripExtraneousFromPeerTubeUrl = function (url: string) { | ||
84 | // Get everything before the 3rd /. | ||
85 | const urlLength: number = url.includes('/', 8) ? url.indexOf('/', 8) : url.length | ||
86 | |||
87 | return url.substr(0, urlLength) | ||
88 | } | ||
89 | |||
83 | // Check credentials | 90 | // Check credentials |
84 | try { | 91 | try { |
92 | // Strip out everything after the domain:port. | ||
93 | // @see https://github.com/Chocobozzz/PeerTube/issues/3520 | ||
94 | result.url = stripExtraneousFromPeerTubeUrl(result.url) | ||
95 | |||
85 | await getAccessToken(result.url, result.username, result.password) | 96 | await getAccessToken(result.url, result.username, result.password) |
86 | } catch (err) { | 97 | } catch (err) { |
87 | console.error(err.message) | 98 | console.error(err.message) |