From 8942f9518eae825db1c3daae06ee6d2ef55f8a87 Mon Sep 17 00:00:00 2001 From: rustmailer Date: Sun, 24 Aug 2025 23:53:52 +0800 Subject: [PATCH] fix: allow set license when license expired --- src/modules/common/auth.rs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/modules/common/auth.rs b/src/modules/common/auth.rs index 758d306..c7213df 100644 --- a/src/modules/common/auth.rs +++ b/src/modules/common/auth.rs @@ -13,6 +13,7 @@ use crate::{ raise_error, }; use governor::clock::{Clock, QuantaClock}; +use http::Method; use poem::{ web::{ headers::{authorization::Bearer, Authorization, HeaderMapExt}, @@ -48,15 +49,21 @@ impl Endpoint for ApiGuardEndpoint { type Output = E::Output; async fn call(&self, mut req: Request) -> Result { - CachedLicense::check_license_validity() - .await - .map_err(|error| match error { - RustMailerError::Generic { - message, - location: _, - code, - } => create_api_error_response(&message, code), - })?; + let set_license = matches!( + (req.method(), req.uri().path()), + (&Method::POST, "/api/v1/license") + ); + if !set_license { + CachedLicense::check_license_validity() + .await + .map_err(|error| match error { + RustMailerError::Generic { + message, + location: _, + code, + } => create_api_error_response(&message, code), + })?; + } let context = authorize_access(&req, None).await?; req.set_data(Arc::new(context)); self.ep.call(req).await