From 9dab31812a186d9fb01f2232a61ee26f98fbbfcf Mon Sep 17 00:00:00 2001 From: TheSpooler Date: Sat, 3 Dec 2022 15:10:55 -0500 Subject: [PATCH 1/2] Version bump and fix chrono timestamp_opt warn --- oxide-auth/Cargo.toml | 26 +++++++++++++------------- oxide-auth/src/primitives/generator.rs | 4 ++-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/oxide-auth/Cargo.toml b/oxide-auth/Cargo.toml index 2281a6da..99d357c3 100644 --- a/oxide-auth/Cargo.toml +++ b/oxide-auth/Cargo.toml @@ -15,22 +15,22 @@ license = "MIT OR Apache-2.0" autoexamples = false [dependencies] -base64 = "0.13" -chrono = { version = "0.4", default-features = false, features = ["clock"] } -hmac = "0.12.0" -once_cell = "1.3.1" -serde = { version = "1.0", features = ["derive"] } -serde_derive = "1.0" -serde_json = "1.0" -sha2 = "0.10.1" +base64 = "0.13.1" +chrono = { version = "0.4.23", default-features = false, features = ["clock"] } +hmac = "0.12.1" +once_cell = "1.16.0" +serde = { version = "1.0.148", features = ["derive"] } +serde_derive = "1.0.148" +serde_json = "1.0.89" +sha2 = "0.10.6" subtle = "2.4.1" -rand = "0.8" -rust-argon2 = "1.0" -rmp-serde = "1.1" -url = { version = "2.2.2", features = ["serde"] } +rand = "0.8.5" +rust-argon2 = "1.0.0" +rmp-serde = "1.1.1" +url = { version = "2.3.1", features = ["serde"] } [dev-dependencies] -reqwest = { version = "0.11.10", features = ["blocking"] } +reqwest = { version = "0.11.13", features = ["blocking"] } [package.metadata.docs.rs] features = [] diff --git a/oxide-auth/src/primitives/generator.rs b/oxide-auth/src/primitives/generator.rs index ebd75c4f..21443fcb 100644 --- a/oxide-auth/src/primitives/generator.rs +++ b/oxide-auth/src/primitives/generator.rs @@ -318,7 +318,7 @@ mod time_serde { use chrono::{TimeZone, Utc}; use serde::ser::{Serializer}; - use serde::de::{Deserialize, Deserializer}; + use serde::de::{Deserialize, Deserializer, Error}; pub fn serialize(time: &Time, serializer: S) -> Result { serializer.serialize_i64(time.timestamp()) @@ -326,7 +326,7 @@ mod time_serde { pub fn deserialize<'de, D: Deserializer<'de>>(deserializer: D) -> Result { let as_timestamp: i64 = ::deserialize(deserializer)?; - Ok(Utc.timestamp(as_timestamp, 0)) + Utc.timestamp_opt(as_timestamp, 0).single().ok_or(Error::custom("Invalid timestamp")) } } From bbd55661cd8eedf7a34a04d7658c6f435e9df278 Mon Sep 17 00:00:00 2001 From: TheSpooler Date: Sat, 3 Dec 2022 17:15:16 -0500 Subject: [PATCH 2/2] More descriptive error on timestamp conversion --- oxide-auth/src/primitives/generator.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oxide-auth/src/primitives/generator.rs b/oxide-auth/src/primitives/generator.rs index 21443fcb..d3f47ef3 100644 --- a/oxide-auth/src/primitives/generator.rs +++ b/oxide-auth/src/primitives/generator.rs @@ -318,7 +318,7 @@ mod time_serde { use chrono::{TimeZone, Utc}; use serde::ser::{Serializer}; - use serde::de::{Deserialize, Deserializer, Error}; + use serde::de::{Deserialize, Deserializer, Error, Unexpected, Expected}; pub fn serialize(time: &Time, serializer: S) -> Result { serializer.serialize_i64(time.timestamp()) @@ -326,7 +326,7 @@ mod time_serde { pub fn deserialize<'de, D: Deserializer<'de>>(deserializer: D) -> Result { let as_timestamp: i64 = ::deserialize(deserializer)?; - Utc.timestamp_opt(as_timestamp, 0).single().ok_or(Error::custom("Invalid timestamp")) + Utc.timestamp_opt(as_timestamp, 0).single().ok_or(Error::invalid_value(Unexpected::Signed(as_timestamp), &"a valid timestamp value")) } }