pub struct JwtContextExtractor { /* private fields */ }Implementations§
Source§impl JwtContextExtractor
impl JwtContextExtractor
pub fn new(jwt_secret: &str, db_pool: &DbPool) -> Self
pub fn with_analytics_provider( self, provider: Arc<dyn AnalyticsProvider>, ) -> Self
pub async fn extract_standard( &self, headers: &HeaderMap, ) -> Result<RequestContext, ContextExtractionError>
pub async fn extract_mcp_a2a( &self, headers: &HeaderMap, ) -> Result<RequestContext, ContextExtractionError>
Sourcepub async fn decode_for_gateway(
&self,
jwt_token: &JwtToken,
) -> Result<JwtUserContext, ContextExtractionError>
pub async fn decode_for_gateway( &self, jwt_token: &JwtToken, ) -> Result<JwtUserContext, ContextExtractionError>
Decode a JWT for the gateway authn path and confirm the user
still exists. Returns the parsed claim set; the caller assembles
whatever request-scoped struct it needs (the gateway builds an
AuthedPrincipal directly — there’s no need to materialise a
full RequestContext at the auth/gate stage).
Trait Implementations§
Source§impl Clone for JwtContextExtractor
impl Clone for JwtContextExtractor
Source§fn clone(&self) -> JwtContextExtractor
fn clone(&self) -> JwtContextExtractor
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 ContextExtractor for JwtContextExtractor
impl ContextExtractor for JwtContextExtractor
fn extract_from_headers<'life0, 'life1, 'async_trait>(
&'life0 self,
headers: &'life1 HeaderMap,
) -> Pin<Box<dyn Future<Output = Result<RequestContext, ContextExtractionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn extract_from_request<'life0, 'async_trait>(
&'life0 self,
request: Request<Body>,
) -> Pin<Box<dyn Future<Output = Result<(RequestContext, Request<Body>), ContextExtractionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn extract_user_only<'life0, 'life1, 'async_trait>(
&'life0 self,
headers: &'life1 HeaderMap,
) -> Pin<Box<dyn Future<Output = Result<RequestContext, ContextExtractionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl Freeze for JwtContextExtractor
impl !RefUnwindSafe for JwtContextExtractor
impl Send for JwtContextExtractor
impl Sync for JwtContextExtractor
impl Unpin for JwtContextExtractor
impl UnsafeUnpin for JwtContextExtractor
impl !UnwindSafe for JwtContextExtractor
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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