Fix Duo Redirect not using path (#4862)

The URL crate treats `https://domain.tld/path` differently then
`https://domain.tld/path/` the latter will make sure a `.join()` will
append the given path instead of using the base as a relative path.

Fixes #4858
This commit is contained in:
Mathijs van Veluw 2024-08-15 12:29:51 +02:00 committed by GitHub
parent 9eebbf3b9f
commit 339612c917
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 1 additions and 1 deletions

View File

@ -357,7 +357,7 @@ pub async fn purge_duo_contexts(pool: DbPool) {
// Construct the url that Duo should redirect users to. // Construct the url that Duo should redirect users to.
fn make_callback_url(client_name: &str) -> Result<String, Error> { fn make_callback_url(client_name: &str) -> Result<String, Error> {
// Get the location of this application as defined in the config. // Get the location of this application as defined in the config.
let base = match Url::parse(CONFIG.domain().as_str()) { let base = match Url::parse(&format!("{}/", CONFIG.domain())) {
Ok(url) => url, Ok(url) => url,
Err(e) => err!(format!("Error parsing configured domain URL (check your domain configuration): {e:?}")), Err(e) => err!(format!("Error parsing configured domain URL (check your domain configuration): {e:?}")),
}; };