pub struct LegacySecret {
pub secret: String,
pub valid_until: DateTime<Utc>,
}Expand description
A retired HMAC secret kept around for a bounded window so tokens minted
before rotation still validate. After valid_until the entry is silently
dropped at startup and never used for verification — leaked old keys
cannot extend their reach indefinitely.
Rotate by adding the outgoing secret here with valid_until set one
access-token TTL into the future, swap jwt_secret to the new value,
then remove the entry once the window closes.
Fields§
§secret: StringHMAC secret bytes (treated as opaque; min length is not re-enforced
here — the active jwt_secret validation already covers minimum
strength, and a previously-active key already satisfied it).
valid_until: DateTime<Utc>RFC 3339 timestamp after which this key is no longer accepted.
Trait Implementations§
Source§impl Clone for LegacySecret
impl Clone for LegacySecret
Source§fn clone(&self) -> LegacySecret
fn clone(&self) -> LegacySecret
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LegacySecret
impl Debug for LegacySecret
Source§impl<'de> Deserialize<'de> for LegacySecret
impl<'de> Deserialize<'de> for LegacySecret
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for LegacySecret
impl RefUnwindSafe for LegacySecret
impl Send for LegacySecret
impl Sync for LegacySecret
impl Unpin for LegacySecret
impl UnsafeUnpin for LegacySecret
impl UnwindSafe for LegacySecret
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more