pub struct JwtClaimResolver { /* private fields */ }Expand description
Resolves tenant from a JWT claim stored in request extensions.
Reads a serde_json::Value inserted by an upstream JWT middleware, extracts
the claim field named claim_field as an i64, and passes it to the lookup
as a tenant ID.
The upstream JWT/auth middleware must insert the parsed claims as
serde_json::Value via req.insert::<serde_json::Value>(claims).
§Example
ⓘ
use ferro_rs::tenant::{JwtClaimResolver, DbTenantLookup};
use std::sync::Arc;
// Expects upstream JWT middleware to insert serde_json::Value with a "tenant_id" field
let resolver = JwtClaimResolver::new("tenant_id", Arc::new(lookup));Implementations§
Trait Implementations§
Source§impl TenantResolver for JwtClaimResolver
impl TenantResolver for JwtClaimResolver
Auto Trait Implementations§
impl Freeze for JwtClaimResolver
impl !RefUnwindSafe for JwtClaimResolver
impl Send for JwtClaimResolver
impl Sync for JwtClaimResolver
impl Unpin for JwtClaimResolver
impl UnsafeUnpin for JwtClaimResolver
impl !UnwindSafe for JwtClaimResolver
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> 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