pub trait RevocationReader: Send + Sync {
// Required method
fn is_revoked<'life0, 'life1, 'async_trait>(
&'life0 self,
jti: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
}Expand description
Edge-side revocation check. The verify-only consumer depends on this — it
can ask whether a jti is revoked but holds no power to revoke.
async + dyn-compatible (via [async_trait]) to match the rest of the store
surface, so an edge can hold a dyn RevocationReader backed by CF KV.
Required Methods§
Sourcefn is_revoked<'life0, 'life1, 'async_trait>(
&'life0 self,
jti: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn is_revoked<'life0, 'life1, 'async_trait>(
&'life0 self,
jti: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
true if a session with this jti has been revoked.
A point membership check against a read-mostly, eventually-consistent
replica. A false answer is not a proof of liveness — only that the
revocation, if any, has not yet propagated to this replica (bounded by
the access-token TTL). Cryptographic expiry is still enforced separately
by the TokenVerifier.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".