pub struct OptionalSecurityContext(pub Option<SecurityContext>);Expand description
Extractor for optional SecurityContext from authenticated user and headers.
When used in a handler, automatically extracts:
AuthUserfrom request extensions (if present)- Request metadata from HTTP headers (request ID, IP, tenant ID)
- Creates
SecurityContextfrom both
If authentication is not present, returns None (optional extraction).
§Example
// Requires: running Axum server with authentication middleware configured.
async fn graphql_handler(
State(state): State<AppState>,
OptionalSecurityContext(context): OptionalSecurityContext,
) -> Result<Response> {
// context is Option<SecurityContext>
}Tuple Fields§
§0: Option<SecurityContext>Trait Implementations§
Source§impl Clone for OptionalSecurityContext
impl Clone for OptionalSecurityContext
Source§fn clone(&self) -> OptionalSecurityContext
fn clone(&self) -> OptionalSecurityContext
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OptionalSecurityContext
impl Debug for OptionalSecurityContext
Source§impl<S> FromRequestParts<S> for OptionalSecurityContext
impl<S> FromRequestParts<S> for OptionalSecurityContext
Source§type Rejection = ExtensionRejection
type Rejection = ExtensionRejection
If the extractor fails it’ll use this “rejection” type. A rejection is
a kind of error that can be converted into a response.
Auto Trait Implementations§
impl Freeze for OptionalSecurityContext
impl RefUnwindSafe for OptionalSecurityContext
impl Send for OptionalSecurityContext
impl Sync for OptionalSecurityContext
impl Unpin for OptionalSecurityContext
impl UnsafeUnpin for OptionalSecurityContext
impl UnwindSafe for OptionalSecurityContext
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<S, T> FromRequest<S, ViaParts> for T
impl<S, T> FromRequest<S, ViaParts> for T
Source§type Rejection = <T as FromRequestParts<S>>::Rejection
type Rejection = <T as FromRequestParts<S>>::Rejection
If the extractor fails it’ll use this “rejection” type. A rejection is
a kind of error that can be converted into a response.
Source§fn from_request(
req: Request<Body>,
state: &S,
) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
fn from_request( req: Request<Body>, state: &S, ) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
Perform the extraction.
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