diff --git a/backend/feature/auth/src/framework/web/auth_middleware.rs b/backend/feature/auth/src/framework/web/auth_middleware.rs index d7d720d..c1ff8d0 100644 --- a/backend/feature/auth/src/framework/web/auth_middleware.rs +++ b/backend/feature/auth/src/framework/web/auth_middleware.rs @@ -1,37 +1,10 @@ use std::future::{self, Ready}; use actix_session::SessionExt; -use actix_web::{ - Error, FromRequest, HttpMessage, HttpRequest, - body::MessageBody, - dev::{Payload, ServiceRequest, ServiceResponse}, - error::ErrorUnauthorized, - middleware::Next, -}; +use actix_web::{Error, FromRequest, HttpRequest, dev::Payload, error::ErrorUnauthorized}; use crate::framework::web::constants::SESSION_KEY_USER_ID; -pub async fn auth_middleware( - req: ServiceRequest, - next: Next, -) -> Result, Error> { - let session = req.get_session(); - let user_id = session.get::(SESSION_KEY_USER_ID); - - if user_id.is_err() { - return next.call(req).await; - } - - let user_id = user_id.unwrap(); - if user_id.is_none() { - return next.call(req).await; - } - - let user_id = user_id.unwrap(); - req.extensions_mut().insert(user_id); - next.call(req).await -} - pub struct UserId(i32); impl UserId { @@ -45,7 +18,12 @@ impl FromRequest for UserId { type Future = Ready>; fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future { - let user_id = req.extensions().get::().cloned(); + let user_id_result = req.get_session().get::(SESSION_KEY_USER_ID); + + let user_id = match user_id_result { + Ok(id) => id, + _ => return future::ready(Err(ErrorUnauthorized(""))), + }; match user_id { Some(id) => future::ready(Ok(UserId(id))), diff --git a/backend/server/src/main.rs b/backend/server/src/main.rs index 52a36a4..adc4724 100644 --- a/backend/server/src/main.rs +++ b/backend/server/src/main.rs @@ -5,12 +5,9 @@ use actix_web::{ App, Error, HttpServer, body::MessageBody, dev::{ServiceFactory, ServiceRequest, ServiceResponse}, - middleware::from_fn, web, }; -use auth::framework::web::{ - auth_middleware::auth_middleware, auth_web_routes::configure_auth_routes, -}; +use auth::framework::web::auth_web_routes::configure_auth_routes; use image::framework::web::image_web_routes::configure_image_routes; use openidconnect::reqwest; use post::framework::web::post_web_routes::configure_post_routes; @@ -67,7 +64,6 @@ fn create_app( App::new() // The middlewares are executed in opposite order as registration. - .wrap(from_fn(auth_middleware)) .wrap(session_middleware_builder.build()) .app_data(web::Data::from(container.auth_controller)) .app_data(web::Data::from(container.image_controller))