1
0
Fork 0
mirror of https://github.com/zhaofengli/attic.git synced 2024-12-14 11:57:30 +00:00

token: fixup JWT creation

Since we now validate the `sub` and `nbf` claims, they need to be set
when atticadm generates them.
This commit is contained in:
Cole Helbling 2023-11-08 13:54:50 -08:00
parent fcc049495e
commit 9e23916e02
3 changed files with 25 additions and 35 deletions

54
Cargo.lock generated
View file

@ -66,6 +66,12 @@ dependencies = [
"alloc-no-stdlib", "alloc-no-stdlib",
] ]
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]] [[package]]
name = "android_system_properties" name = "android_system_properties"
version = "0.1.5" version = "0.1.5"
@ -363,7 +369,7 @@ dependencies = [
"http", "http",
"hyper", "hyper",
"ring 0.16.20", "ring 0.16.20",
"time 0.3.21", "time",
"tokio", "tokio",
"tower", "tower",
"tracing", "tracing",
@ -533,7 +539,7 @@ dependencies = [
"percent-encoding", "percent-encoding",
"regex", "regex",
"sha2", "sha2",
"time 0.3.21", "time",
"tracing", "tracing",
] ]
@ -673,7 +679,7 @@ dependencies = [
"itoa", "itoa",
"num-integer", "num-integer",
"ryu", "ryu",
"time 0.3.21", "time",
] ]
[[package]] [[package]]
@ -975,18 +981,17 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.24" version = "0.4.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
dependencies = [ dependencies = [
"android-tzdata",
"iana-time-zone", "iana-time-zone",
"js-sys", "js-sys",
"num-integer",
"num-traits", "num-traits",
"serde", "serde",
"time 0.1.45",
"wasm-bindgen", "wasm-bindgen",
"winapi", "windows-targets 0.48.0",
] ]
[[package]] [[package]]
@ -1684,7 +1689,7 @@ checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
"wasi 0.11.0+wasi-snapshot-preview1", "wasi",
] ]
[[package]] [[package]]
@ -2258,7 +2263,7 @@ checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
dependencies = [ dependencies = [
"libc", "libc",
"log", "log",
"wasi 0.11.0+wasi-snapshot-preview1", "wasi",
"windows-sys 0.45.0", "windows-sys 0.45.0",
] ]
@ -3065,7 +3070,7 @@ dependencies = [
"serde_json", "serde_json",
"sqlx", "sqlx",
"thiserror", "thiserror",
"time 0.3.21", "time",
"tracing", "tracing",
"url", "url",
"uuid", "uuid",
@ -3128,7 +3133,7 @@ dependencies = [
"rust_decimal", "rust_decimal",
"sea-query-derive", "sea-query-derive",
"serde_json", "serde_json",
"time 0.3.21", "time",
"uuid", "uuid",
] ]
@ -3144,7 +3149,7 @@ dependencies = [
"sea-query", "sea-query",
"serde_json", "serde_json",
"sqlx", "sqlx",
"time 0.3.21", "time",
"uuid", "uuid",
] ]
@ -3315,7 +3320,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"serde_with_macros", "serde_with_macros",
"time 0.3.21", "time",
] ]
[[package]] [[package]]
@ -3424,7 +3429,7 @@ dependencies = [
"num-bigint", "num-bigint",
"num-traits", "num-traits",
"thiserror", "thiserror",
"time 0.3.21", "time",
] ]
[[package]] [[package]]
@ -3551,7 +3556,7 @@ dependencies = [
"sqlx-rt", "sqlx-rt",
"stringprep", "stringprep",
"thiserror", "thiserror",
"time 0.3.21", "time",
"tokio-stream", "tokio-stream",
"url", "url",
"uuid", "uuid",
@ -3703,17 +3708,6 @@ dependencies = [
"once_cell", "once_cell",
] ]
[[package]]
name = "time"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
dependencies = [
"libc",
"wasi 0.10.0+wasi-snapshot-preview1",
"winapi",
]
[[package]] [[package]]
name = "time" name = "time"
version = "0.3.21" version = "0.3.21"
@ -4215,12 +4209,6 @@ dependencies = [
"try-lock", "try-lock",
] ]
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.11.0+wasi-snapshot-preview1" version = "0.11.0+wasi-snapshot-preview1"

View file

@ -9,7 +9,7 @@ edition = "2021"
attic = { path = "../attic", default-features = false } attic = { path = "../attic", default-features = false }
base64 = "0.21.2" base64 = "0.21.2"
chrono = "0.4.24" chrono = "0.4.31"
displaydoc = "0.2.4" displaydoc = "0.2.4"
jsonwebtoken = { version = "9.1.0", features = ["use_pem"] } jsonwebtoken = { version = "9.1.0", features = ["use_pem"] }
lazy_static = "1.4.0" lazy_static = "1.4.0"

View file

@ -319,10 +319,12 @@ impl Token {
attic_ns: Default::default(), attic_ns: Default::default(),
}; };
let now_epoch = Utc::now().signed_duration_since(DateTime::UNIX_EPOCH);
Self(JWTClaims { Self(JWTClaims {
issued_at: None, issued_at: None,
expires_at: Some(exp.timestamp()), expires_at: Some(exp.timestamp()),
invalid_before: None, invalid_before: Some(now_epoch.num_seconds()),
issuer: None, issuer: None,
subject: Some(sub), subject: Some(sub),
audiences: None, audiences: None,