diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-12-23 07:17:55 -0500 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-12-23 07:17:55 -0500 |
commit | eae8b9b7a40c3f2a52f319e695b280a41618fdd8 (patch) | |
tree | f509f4e902f1d9e10d9afe92592430c6a6f231c5 | |
parent | 4d4357430248ef62051ea204ef02f7e998277355 (diff) |
Update axum to 0.6
-rw-r--r-- | Cargo.lock | 19 | ||||
-rw-r--r-- | server/Cargo.toml | 5 | ||||
-rw-r--r-- | server/src/auth.rs | 16 |
3 files changed, 21 insertions, 19 deletions
@@ -111,9 +111,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.5.17" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" +checksum = "08b108ad2665fa3f6e6a517c3d80ec3e77d224c47d605167aefaa5d7ef97fa48" dependencies = [ "async-trait", "axum-core", @@ -129,8 +129,10 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", + "rustversion", "serde", "serde_json", + "serde_path_to_error", "serde_urlencoded", "sync_wrapper", "tokio", @@ -142,9 +144,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.2.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" +checksum = "79b8558f5a0581152dc94dcd289132a1d377494bdeafcd41869b3258e3e2ad92" dependencies = [ "async-trait", "bytes", @@ -152,6 +154,7 @@ dependencies = [ "http", "http-body", "mime", + "rustversion", "tower-layer", "tower-service", ] @@ -1171,9 +1174,9 @@ dependencies = [ [[package]] name = "matchit" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" [[package]] name = "md-5" @@ -2387,9 +2390,9 @@ dependencies = [ [[package]] name = "tower-cookies" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19833e336396f3953e5ab1513d72b5e5ea51d5ad39b78d306766a05740b48b97" +checksum = "4efe6d9c78aae53650a340d0e702e4f103582dce6af6bf897dc1b56c8ed5d4f6" dependencies = [ "async-trait", "axum-core", diff --git a/server/Cargo.toml b/server/Cargo.toml index 8d8407c..7e2772f 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -6,8 +6,7 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -# TODO Upgrade to 0.6: https://github.com/tokio-rs/axum/blob/main/axum/CHANGELOG.md -axum = "0.5" +axum = "0.6" dotenv = "0.15.0" serde = { version = "1.0.145", features = ["derive"] } serde_json = "1.0.85" @@ -19,7 +18,7 @@ protocol = { path = "../protocol" } openidconnect = "2.3.2" lru = "0.8.1" uuid = { version = "1.1.2", features = ["serde", "fast-rng", "v4"] } -tower-cookies = "0.7.0" +tower-cookies = "0.8.0" tower = { version = "0.4.13", features = ["full"] } urlencoding = "2.1.2" sqlx = { version = "0.6", features = ["runtime-tokio-native-tls", "postgres", "uuid", "chrono", "json"] } diff --git a/server/src/auth.rs b/server/src/auth.rs index fc0de62..d0f6c38 100644 --- a/server/src/auth.rs +++ b/server/src/auth.rs @@ -9,8 +9,8 @@ use std::{ use crate::{error::BridgeError, server::ContextExtension}; use async_trait::async_trait; use axum::{ - extract::FromRequest, - response::{IntoResponse, Response}, + extract::{FromRequest, FromRequestParts}, + response::{IntoResponse, Response}, http::request::Parts, }; use chrono::{DateTime, Utc}; use lru::LruCache; @@ -368,19 +368,19 @@ pub async fn fetch_authenticated_session( } #[async_trait] -impl<B> FromRequest<B> for AuthenticatedSession +impl<B> FromRequestParts<B> for AuthenticatedSession where - B: Send, + B: Send + Sync, { type Rejection = Response; - async fn from_request( - req: &mut axum::extract::RequestParts<B>, + async fn from_request_parts( + parts: &mut Parts, state: &B ) -> Result<Self, Self::Rejection> { - let cookies = Cookies::from_request(req) + let cookies = Cookies::from_request_parts(parts, state) .await .map_err(|e| e.into_response())?; - let extension = ContextExtension::from_request(req) + let extension = ContextExtension::from_request_parts(parts, state) .await .map_err(|e| e.into_response())?; let cookie = match cookies.get("user-id") { |