From e6addc7ffa7434d95b125668996bcbf330854e73 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Wed, 5 Nov 2025 09:40:54 -0500 Subject: [PATCH 1/3] tsk-230: Using UserClaims from icarus_models --- src/auth/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/auth/mod.rs b/src/auth/mod.rs index caae917..a9bfaab 100644 --- a/src/auth/mod.rs +++ b/src/auth/mod.rs @@ -6,9 +6,10 @@ use axum::{ }; use axum_extra::extract::cookie::CookieJar; use jsonwebtoken::{DecodingKey, Validation, decode}; -use serde::{Deserialize, Serialize}; +use serde::Serialize; // TODO: Put this in icarus_models +/* fn deserialize_i64_from_f64<'de, D>(deserializer: D) -> Result where D: serde::Deserializer<'de>, @@ -26,8 +27,10 @@ where } Ok(rounded as i64) } +*/ // TODO: Put this in icarus_models +/* #[derive(Clone, Debug, Serialize, Deserialize)] pub struct UserClaims { pub iss: String, @@ -42,6 +45,7 @@ pub struct UserClaims { #[serde(skip_serializing_if = "Option::is_none")] pub roles: Option>, // Optional roles } +*/ #[derive(Debug, Serialize)] pub struct ErrorResponse { @@ -76,7 +80,7 @@ pub async fn auth( let mut validation = Validation::new(jsonwebtoken::Algorithm::HS256); validation.set_audience(&["icarus"]); // Must match exactly what's in the token - let _claims = decode::( + let _claims = decode::( &token, &DecodingKey::from_secret(secret_key.as_ref()), &validation, -- 2.47.3 From f33acdc2517a8cf3f961020a09a36817d47bf24a Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Wed, 5 Nov 2025 09:50:32 -0500 Subject: [PATCH 2/3] tsk-230: Cleanup --- src/auth/mod.rs | 42 +----------------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/src/auth/mod.rs b/src/auth/mod.rs index a9bfaab..776262f 100644 --- a/src/auth/mod.rs +++ b/src/auth/mod.rs @@ -6,48 +6,8 @@ use axum::{ }; use axum_extra::extract::cookie::CookieJar; use jsonwebtoken::{DecodingKey, Validation, decode}; -use serde::Serialize; -// TODO: Put this in icarus_models -/* -fn deserialize_i64_from_f64<'de, D>(deserializer: D) -> Result -where - D: serde::Deserializer<'de>, -{ - let val = f64::deserialize(deserializer)?; - // Handle NaN and infinity cases - if val.is_nan() || val.is_infinite() { - return Err(serde::de::Error::custom("invalid float value")); - } - // Round to nearest integer and convert - let rounded = val.round(); - // Check if the rounded value can fit in i64 - if rounded < (i64::MIN as f64) || rounded > (i64::MAX as f64) { - return Err(serde::de::Error::custom("float out of i64 range")); - } - Ok(rounded as i64) -} -*/ - -// TODO: Put this in icarus_models -/* -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct UserClaims { - pub iss: String, - pub aud: String, // Audience - pub sub: String, // Subject (user ID) - #[serde(deserialize_with = "deserialize_i64_from_f64")] - pub exp: i64, // Expiration time (UTC timestamp) - #[serde(deserialize_with = "deserialize_i64_from_f64")] - pub iat: i64, // Issued at (UTC timestamp) - // pub azp: String, - // pub gty: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub roles: Option>, // Optional roles -} -*/ - -#[derive(Debug, Serialize)] +#[derive(Debug, serde::Serialize)] pub struct ErrorResponse { pub status: &'static str, pub message: String, -- 2.47.3 From 02abc856f44fb6dd82696a0564f32ea2e0f5cb2c Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Wed, 5 Nov 2025 09:50:45 -0500 Subject: [PATCH 3/3] tsk-230: Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a85efbd..c7aa646 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -964,7 +964,7 @@ dependencies = [ [[package]] name = "icarus" -version = "0.3.25" +version = "0.3.26" dependencies = [ "axum", "axum-extra", diff --git a/Cargo.toml b/Cargo.toml index 8616ac1..967e4a8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus" -version = "0.3.25" +version = "0.3.26" edition = "2024" rust-version = "1.90" -- 2.47.3