pub struct ProxyTokenCache { /* private fields */ }Expand description
LRU-bounded cache of access tokens keyed on (local tn_id, remote id_tag).
Uses parking_lot::Mutex (no poisoning) because LruCache::get mutates
recency state.
Implementations§
Source§impl ProxyTokenCache
impl ProxyTokenCache
pub fn new() -> Self
pub fn with_capacity(capacity: NonZeroUsize) -> Self
Sourcepub fn get(&self, tn_id: TnId, id_tag: &str) -> Option<Box<str>>
pub fn get(&self, tn_id: TnId, id_tag: &str) -> Option<Box<str>>
Returns a cached token if one is still valid; None otherwise.
Sourcepub fn insert(&self, tn_id: TnId, id_tag: &str, token: Box<str>)
pub fn insert(&self, tn_id: TnId, id_tag: &str, token: Box<str>)
Inserts a freshly-minted token, deriving its expiry from the JWT’s
own exp claim.
Sourcepub fn invalidate(&self, tn_id: TnId, id_tag: &str)
pub fn invalidate(&self, tn_id: TnId, id_tag: &str)
Drops the cached token for (tn_id, id_tag). Call after a 401/403
from the remote so the next request mints fresh.
Trait Implementations§
Source§impl Debug for ProxyTokenCache
impl Debug for ProxyTokenCache
Auto Trait Implementations§
impl !RefUnwindSafe for ProxyTokenCache
impl !UnwindSafe for ProxyTokenCache
impl Freeze for ProxyTokenCache
impl Send for ProxyTokenCache
impl Sync for ProxyTokenCache
impl Unpin for ProxyTokenCache
impl UnsafeUnpin for ProxyTokenCache
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().