From 7eb391084acdc916564378fb2d302edc1540455b Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 1 Aug 2025 15:28:48 -0400 Subject: [PATCH 1/6] icarus_models bump --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e5750d4..fbceed1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -761,9 +761,10 @@ dependencies = [ [[package]] name = "icarus_models" -version = "0.5.0" -source = "git+ssh://git@git.kundeng.us/phoenix/icarus_models.git?tag=v0.5.0-devel-7958b89abc-111#7958b89abc56bc9262015b3e201ea2906cc8a9ff" +version = "0.5.2" +source = "git+ssh://git@git.kundeng.us/phoenix/icarus_models.git?tag=v0.5.2-devel-d3251f935e-111#d3251f935e76caa110727203d910ee0683a668a0" dependencies = [ + "josekit", "rand 0.9.1", "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 730d787..4332797 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ argon2 = { version = "0.5.3", features = ["std"] } # Use the latest 0.5.x versio rand = { version = "0.9.1" } time = { version = "0.3.41", features = ["macros", "serde"] } josekit = { version = "0.10.3" } -icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.5.0-devel-7958b89abc-111" } +icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.5.2-devel-d3251f935e-111" } icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.3.0-devel-d73fba9899-006" } [dev-dependencies] -- 2.43.0 From db436213223fa6e004af73b1f9e3d564556d18e3 Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 1 Aug 2025 15:34:58 -0400 Subject: [PATCH 2/6] Using create_token() from icarus_models --- src/token_stuff/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/token_stuff/mod.rs b/src/token_stuff/mod.rs index 44b3117..62495d9 100644 --- a/src/token_stuff/mod.rs +++ b/src/token_stuff/mod.rs @@ -31,6 +31,7 @@ mod util { } pub fn create_token(provided_key: &String) -> Result<(String, i64), josekit::JoseError> { + /* let mut header = JwsHeader::new(); header.set_token_type(TOKENTYPE); @@ -61,6 +62,8 @@ pub fn create_token(provided_key: &String) -> Result<(String, i64), josekit::Jos } Err(e) => Err(josekit::JoseError::InvalidClaim(e.into())), } + */ + icarus_models::token::create_token(provided_key, &String::from(MESSAGE), &String::from(ISSUER), &String::from(AUDIENCE)) } pub fn verify_token(key: &String, token: &String) -> bool { -- 2.43.0 From ca84fe6ef4fefbe26a05bc81d581b61e1a85df33 Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 1 Aug 2025 16:22:14 -0400 Subject: [PATCH 3/6] icarus_models bump --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fbceed1..f9b7487 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -761,8 +761,8 @@ dependencies = [ [[package]] name = "icarus_models" -version = "0.5.2" -source = "git+ssh://git@git.kundeng.us/phoenix/icarus_models.git?tag=v0.5.2-devel-d3251f935e-111#d3251f935e76caa110727203d910ee0683a668a0" +version = "0.5.4" +source = "git+ssh://git@git.kundeng.us/phoenix/icarus_models.git?tag=v0.5.4-devel-1e95822b5a-111#1e95822b5a349bd73cc501d921052f289105ec55" dependencies = [ "josekit", "rand 0.9.1", diff --git a/Cargo.toml b/Cargo.toml index 4332797..f5d3ed6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ argon2 = { version = "0.5.3", features = ["std"] } # Use the latest 0.5.x versio rand = { version = "0.9.1" } time = { version = "0.3.41", features = ["macros", "serde"] } josekit = { version = "0.10.3" } -icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.5.2-devel-d3251f935e-111" } +icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.5.4-devel-1e95822b5a-111" } icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.3.0-devel-d73fba9899-006" } [dev-dependencies] -- 2.43.0 From e8871ab00557d139da5edec4dfc0da5f8083ad40 Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 1 Aug 2025 16:22:35 -0400 Subject: [PATCH 4/6] Changes due to dependency update --- src/token_stuff/mod.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/token_stuff/mod.rs b/src/token_stuff/mod.rs index 62495d9..55d49f3 100644 --- a/src/token_stuff/mod.rs +++ b/src/token_stuff/mod.rs @@ -1,7 +1,7 @@ use josekit::{ self, - jws::{JwsHeader, alg::hmac::HmacJwsAlgorithm::Hs256}, - jwt::{self, JwtPayload}, + jws::{alg::hmac::HmacJwsAlgorithm::Hs256}, + jwt::{self}, }; use time; @@ -21,6 +21,7 @@ pub fn get_expiration(issued: &time::OffsetDateTime) -> Result Result<(String, i64), josekit::JoseError> { /* @@ -63,7 +65,12 @@ pub fn create_token(provided_key: &String) -> Result<(String, i64), josekit::Jos Err(e) => Err(josekit::JoseError::InvalidClaim(e.into())), } */ - icarus_models::token::create_token(provided_key, &String::from(MESSAGE), &String::from(ISSUER), &String::from(AUDIENCE)) + let resource = icarus_models::token::TokenResource { + message: String::from(MESSAGE), + issuer: String::from(ISSUER), + audiences: vec![String::from(AUDIENCE)] + }; + icarus_models::token::create_token(provided_key, &resource, time::Duration::hours(4)) } pub fn verify_token(key: &String, token: &String) -> bool { -- 2.43.0 From 75b9a74a83e7ad97851ade44039e5b6d85ba1185 Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 1 Aug 2025 16:42:01 -0400 Subject: [PATCH 5/6] Code cleanup --- src/callers/login.rs | 2 +- src/token_stuff/mod.rs | 49 ++---------------------------------------- 2 files changed, 3 insertions(+), 48 deletions(-) diff --git a/src/callers/login.rs b/src/callers/login.rs index 7c391e4..9476df5 100644 --- a/src/callers/login.rs +++ b/src/callers/login.rs @@ -62,7 +62,7 @@ pub mod endpoint { id: user.id, username: user.username.clone(), token: token_literal, - token_type: String::from(token_stuff::TOKENTYPE), + token_type: String::from(icarus_models::token::TOKEN_TYPE), expiration: duration, }], }), diff --git a/src/token_stuff/mod.rs b/src/token_stuff/mod.rs index 55d49f3..ea2f412 100644 --- a/src/token_stuff/mod.rs +++ b/src/token_stuff/mod.rs @@ -1,12 +1,11 @@ use josekit::{ self, - jws::{alg::hmac::HmacJwsAlgorithm::Hs256}, + jws::alg::hmac::HmacJwsAlgorithm::Hs256, jwt::{self}, }; use time; -pub const TOKENTYPE: &str = "JWT"; pub const KEY_ENV: &str = "SECRET_KEY"; pub const MESSAGE: &str = "Something random"; pub const ISSUER: &str = "icarus_auth"; @@ -21,54 +20,11 @@ pub fn get_expiration(issued: &time::OffsetDateTime) -> Result Result { - let converted = std::time::SystemTime::from(*provided_time); - Ok(converted) - } -} -*/ - pub fn create_token(provided_key: &String) -> Result<(String, i64), josekit::JoseError> { - /* - let mut header = JwsHeader::new(); - header.set_token_type(TOKENTYPE); - - let mut payload = JwtPayload::new(); - payload.set_subject(MESSAGE); - payload.set_issuer(ISSUER); - payload.set_audience(vec![AUDIENCE]); - match get_issued() { - Ok(issued) => { - let expire = get_expiration(&issued).unwrap(); - payload.set_issued_at(&util::time_to_std_time(&issued).unwrap()); - payload.set_expires_at(&util::time_to_std_time(&expire).unwrap()); - - let key: String = if provided_key.is_empty() { - let rt = tokio::runtime::Runtime::new().unwrap(); - - // Block on the async function to get the result - rt.block_on(icarus_envy::environment::get_secret_key()) - } else { - provided_key.to_owned() - }; - - let signer = Hs256.signer_from_bytes(key.as_bytes()).unwrap(); - Ok(( - josekit::jwt::encode_with_signer(&payload, &header, &signer).unwrap(), - (expire - time::OffsetDateTime::UNIX_EPOCH).whole_seconds(), - )) - } - Err(e) => Err(josekit::JoseError::InvalidClaim(e.into())), - } - */ let resource = icarus_models::token::TokenResource { message: String::from(MESSAGE), issuer: String::from(ISSUER), - audiences: vec![String::from(AUDIENCE)] + audiences: vec![String::from(AUDIENCE)], }; icarus_models::token::create_token(provided_key, &resource, time::Duration::hours(4)) } @@ -84,7 +40,6 @@ pub fn verify_token(key: &String, token: &String) -> bool { #[cfg(test)] mod tests { - use super::*; #[test] -- 2.43.0 From e765bbe53731f6a68b8dc25a16b9b62e03663d77 Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 1 Aug 2025 16:45:43 -0400 Subject: [PATCH 6/6] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f9b7487..9370a38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -728,7 +728,7 @@ dependencies = [ [[package]] name = "icarus_auth" -version = "0.4.0" +version = "0.4.1" dependencies = [ "argon2", "axum", diff --git a/Cargo.toml b/Cargo.toml index f5d3ed6..71caf6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_auth" -version = "0.4.0" +version = "0.4.1" edition = "2024" rust-version = "1.88" -- 2.43.0