From fb6a7abb9a18b4b6ce48ce795b5657d1af66ff04 Mon Sep 17 00:00:00 2001 From: Max Berger Date: Fri, 27 Mar 2026 18:52:08 +0100 Subject: [PATCH] Basic Authorization: User proper encoding for password --- integ_tests/common.py | 4 ++-- radicale/web/internal_data/js/api/common.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integ_tests/common.py b/integ_tests/common.py index 9813349d..eabbaf00 100644 --- a/integ_tests/common.py +++ b/integ_tests/common.py @@ -125,7 +125,7 @@ database_path = {sharing_path} if config.auth_type == AuthType.HTPASSWD: with open(user_path, "w") as f: f.write( - """admin:adminpassword + """admin:admi$pass#word max:maxpassword """ @@ -185,7 +185,7 @@ def login( if config.auth_type == AuthType.HTPASSWD: page.fill('#loginscene input[data-name="user"]', "admin") - page.fill('#loginscene input[data-name="password"]', "adminpassword") + page.fill('#loginscene input[data-name="password"]', "admi$pass#word") page.click('button:has-text("Next")') expect(page.locator("#collectionsscene")).to_be_visible() diff --git a/radicale/web/internal_data/js/api/common.js b/radicale/web/internal_data/js/api/common.js index 1f249936..014304ca 100644 --- a/radicale/web/internal_data/js/api/common.js +++ b/radicale/web/internal_data/js/api/common.js @@ -39,7 +39,7 @@ export function to_error_message(request) { */ export function get_auth_header(user, password) { if (user !== null && password !== null && password !== "") { - return 'Basic ' + btoa(user + ':' + encodeURIComponent(password)); + return 'Basic ' + btoa(user + ':' + password); } return null; }