pub struct JwtAuth<T> { /* private fields */ }Expand description
Validates HS256 bearer tokens and exposes their typed claims to handlers.
A previous secret can be accepted during key rotation. Token headers are constrained to HS256 before signature verification to prevent algorithm-confusion attacks.
Implementations§
Source§impl<T> JwtAuth<T>where
T: Clone + DeserializeOwned + 'static,
impl<T> JwtAuth<T>where
T: Clone + DeserializeOwned + 'static,
pub fn new(secret: impl AsRef<[u8]>) -> Self
pub fn with_previous_secret(self, secret: impl AsRef<[u8]>) -> Self
pub fn with_leeway(self, seconds: u64) -> Self
pub fn with_claim_projection(self, projection: JwtClaimProjection) -> Self
pub fn claims(request: &HttpRequest) -> Option<T>
pub fn projected_claims( request: &HttpRequest, ) -> Option<BTreeMap<String, Value>>
Trait Implementations§
Source§impl<S, B, T> Transform<S, ServiceRequest> for JwtAuth<T>where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: MessageBody + 'static,
T: Clone + DeserializeOwned + 'static,
impl<S, B, T> Transform<S, ServiceRequest> for JwtAuth<T>where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: MessageBody + 'static,
T: Clone + DeserializeOwned + 'static,
Source§type Response = ServiceResponse<EitherBody<B>>
type Response = ServiceResponse<EitherBody<B>>
Responses produced by the service.
Source§type Transform = JwtAuthMiddleware<S, T>
type Transform = JwtAuthMiddleware<S, T>
The
TransformService value created by this factorySource§type Future = Ready<Result<<JwtAuth<T> as Transform<S, ServiceRequest>>::Transform, <JwtAuth<T> as Transform<S, ServiceRequest>>::InitError>>
type Future = Ready<Result<<JwtAuth<T> as Transform<S, ServiceRequest>>::Transform, <JwtAuth<T> as Transform<S, ServiceRequest>>::InitError>>
The future response value.
Source§fn new_transform(&self, service: S) -> Self::Future
fn new_transform(&self, service: S) -> Self::Future
Creates and returns a new Transform component, asynchronously
Auto Trait Implementations§
impl<T> !Freeze for JwtAuth<T>
impl<T> RefUnwindSafe for JwtAuth<T>
impl<T> Send for JwtAuth<T>
impl<T> Sync for JwtAuth<T>
impl<T> Unpin for JwtAuth<T>
impl<T> UnsafeUnpin for JwtAuth<T>
impl<T> UnwindSafe for JwtAuth<T>
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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request