pub struct AdminAuth {
pub identity: String,
pub role: AdminRole,
}Expand description
Authenticated admin context extracted from request headers.
Verifies admin credentials (Bearer token or admin mTLS) before the handler runs. On failure, returns 401 or 403.
Carries the caller’s AdminRole; mutating handlers must call
AdminAuth::require_operator before performing any change.
Fields§
§identity: StringThe authenticated admin identity (username or cert subject).
role: AdminRoleThe role granted to this identity.
Implementations§
Source§impl AdminAuth
impl AdminAuth
Sourcepub fn require_operator(&self) -> Option<Response>
pub fn require_operator(&self) -> Option<Response>
Enforce that the caller holds the AdminRole::Operator role.
Returns Some(403) for an auditor (or any non-operator) and None
when the caller is an operator. Call this at the top of every mutating
admin handler so read-only roles cannot alter state (FMT_SMR.1):
ⓘ
if let Some(resp) = admin.require_operator() {
return resp;
}Trait Implementations§
Auto Trait Implementations§
impl Freeze for AdminAuth
impl RefUnwindSafe for AdminAuth
impl Send for AdminAuth
impl Sync for AdminAuth
impl Unpin for AdminAuth
impl UnsafeUnpin for AdminAuth
impl UnwindSafe for AdminAuth
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,
§impl<S, T> FromRequest<S, ViaParts> for T
impl<S, T> FromRequest<S, ViaParts> for T
§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.
§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.
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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