From 3c179e5da7dd83a04cf107e0a135e716f87fca75 Mon Sep 17 00:00:00 2001 From: itsjunetime Date: Sun, 24 Dec 2023 10:58:24 -0700 Subject: [PATCH] Update to latest tower-sessions --- Cargo.lock | 59 +++++++++++++++++++++++---------------------- backend/Cargo.toml | 2 +- backend/src/main.rs | 14 ++++++----- 3 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1167be8..dd730b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9bcf5bdbfdd6030fb4a1c497b5d5fc5921aa2f60d359a17e249c0e6df3de153" +checksum = "adc6598521bb5a83d491e8c1fe51db7296019d2ca3cb93cc6c2a20369a4d78a2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -406,9 +406,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -628,9 +628,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -642,9 +642,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -652,9 +652,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-intrusive" @@ -669,15 +669,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", @@ -686,21 +686,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -1532,9 +1532,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -2498,9 +2498,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tower-sessions" -version = "0.7.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23a9827d593712d471a19d3cb1334e57a97e5b34a9f02b4eef2114b7405dcd" +checksum = "645170f7fa7975a65ccb4a14ba2271c4df9598afc2755c2bfe05f294cda3a556" dependencies = [ "tower-sessions-core", "tower-sessions-memory-store", @@ -2508,9 +2508,9 @@ dependencies = [ [[package]] name = "tower-sessions-core" -version = "0.7.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d733b3ae4a6a4cb80cd585e87ffe1a1a7011174581785039c83c4cd63ee61c" +checksum = "2f01972091af543726f9a48afb73efcd6b142699f1bc743975c774117db4bba2" dependencies = [ "async-trait", "axum-core", @@ -2521,6 +2521,7 @@ dependencies = [ "serde_json", "thiserror", "time", + "tokio", "tower-cookies", "tower-layer", "tower-service", @@ -2530,13 +2531,13 @@ dependencies = [ [[package]] name = "tower-sessions-memory-store" -version = "0.7.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78d855ef8feaef2382c6df2cf4c4b6651dce890019ceaf0ec70c8af2516a1ce9" +checksum = "2a09281f8b4d3a847b9479658bafc2dab1224f76f03e877c8eca354ed42fb2c3" dependencies = [ "async-trait", - "parking_lot", "time", + "tokio", "tower-sessions-core", ] diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 496c7e6..71af58c 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -16,7 +16,7 @@ serde = { version = "1.0.193", features = ["serde_derive"] } tower = { version = "0.4.13", default-features = false } axum-auth = { version = "0.7.0", default-features = false, features = ["auth-basic"] } argon2 = { version = "0.5.2", features = ["std"] } -tower-sessions = "0.7.0" +tower-sessions = "0.8.2" syntect = { version = "5.1.0", default-features = false, features = ["default-themes", "parsing", "default-syntaxes", "html", "regex-onig"] } horrorshow = { version = "0.8.4", default-features = false, features = ["std", "ops"] } once_cell = { version = "1.19.0", default-features = false } diff --git a/backend/src/main.rs b/backend/src/main.rs index 949a991..c25907a 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -68,7 +68,7 @@ macro_rules! check_auth{ } }; ($session:ident, noret) => { - $session.get::($crate::USERNAME_KEY).ok().flatten() + $session.get::($crate::USERNAME_KEY).await.ok().flatten() } } @@ -448,18 +448,20 @@ pub async fn login( return Ok(()); }; + let session_id = session.id(); + // Only get the pass if it's not empty let Some(pass) = password.and_then(|p| (!p.is_empty()).then_some(p)) else { - eprintln!("Session {} sent a login request with an empty password", session.id()); + eprintln!("Session {session_id:?} sent a login request with an empty password"); return Err((StatusCode::PRECONDITION_FAILED, "Please include a password")); }; if username.is_empty() { - eprintln!("Session {} sent a login request with an empty username", session.id()); + eprintln!("Session {session_id:?} sent a login request with an empty username"); return Err((StatusCode::PRECONDITION_FAILED, "Please include a username")); } - println!("User trying to login with session {} and username {username}", session.id()); + println!("User trying to login with session {session_id:?} and username {username}"); let unauth = || (StatusCode::UNAUTHORIZED, "Incorrect username or password"); @@ -484,9 +486,9 @@ pub async fn login( match Argon2::default().verify_password(pass.as_bytes(), &hash_struct) { Ok(()) => { - println!("Trying to log in {username} with session_id {}", session.id()); + println!("Trying to log in {username} with session_id {:?}", session.id()); - if let Err(err) = session.insert(USERNAME_KEY, username) { + if let Err(err) = session.insert(USERNAME_KEY, username).await { println!("Could not save session: {err}"); return Err((StatusCode::INTERNAL_SERVER_ERROR, "Failed to save session; unable to log you in")); }