pub struct TokenEndpointProvider { /* private fields */ }Expand description
Fetches a token from an arbitrary endpoint, extracts it via token_path
(JSONPath), and caches it with optional expiry tracking. Single-flight
refresh via an internal Mutex.
Implementations§
Source§impl TokenEndpointProvider
impl TokenEndpointProvider
Sourcepub fn from_config(config: &Value) -> Result<Self, FaucetError>
pub fn from_config(config: &Value) -> Result<Self, FaucetError>
Build from a config object with url, optional method (default POST),
optional body, token_path (JSONPath), optional expiry_path, and
optional expiry_ratio.
Trait Implementations§
Source§impl AuthProvider for TokenEndpointProvider
impl AuthProvider for TokenEndpointProvider
Source§fn credential<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Credential, FaucetError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn credential<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Credential, FaucetError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Return a currently-valid credential, refreshing if needed.
Source§fn invalidate<'life0, 'life1, 'async_trait>(
&'life0 self,
stale: &'life1 Credential,
) -> Pin<Box<dyn Future<Output = Result<Credential, FaucetError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn invalidate<'life0, 'life1, 'async_trait>(
&'life0 self,
stale: &'life1 Credential,
) -> Pin<Box<dyn Future<Output = Result<Credential, FaucetError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Force a refresh iff the cached credential still equals
stale
(compare-and-swap). Multiple connectors that hit a 401 with the same
token collapse into a single refresh; callers holding an already-rotated
token get the new one without triggering another fetch. Read moreSource§fn provider_name(&self) -> &'static str
fn provider_name(&self) -> &'static str
Stable, non-empty name for diagnostics and metrics.
Auto Trait Implementations§
impl !Freeze for TokenEndpointProvider
impl !RefUnwindSafe for TokenEndpointProvider
impl Send for TokenEndpointProvider
impl Sync for TokenEndpointProvider
impl Unpin for TokenEndpointProvider
impl UnsafeUnpin for TokenEndpointProvider
impl !UnwindSafe for TokenEndpointProvider
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