pub struct MaybePrincipal(pub Option<AuthenticatedPrincipal>);Expand description
v0.10.0: extractor that lifts the full AuthenticatedPrincipal out
of request extensions for the /v1/tenants handler. Distinct from
AuditPrincipal (which only carries subject: Option<String>) — the
tenant-list handler needs the tenant_claim and claims fields to
distinguish bearer (claims = Null) from OIDC (claims = JWT object)
principals.
None when no AuthenticatedPrincipal is on the request — the
unauthenticated loopback deployment path, which the tenant-list
handler treats as “all tenants visible” (same scope as the
solo tenants list CLI). See docs/dev-log/0119-tenants-list-impl.md
for the three-case visibility rule.
Tuple Fields§
§0: Option<AuthenticatedPrincipal>Trait Implementations§
Source§impl<S> FromRequestParts<S> for MaybePrincipal
impl<S> FromRequestParts<S> for MaybePrincipal
Auto Trait Implementations§
impl Freeze for MaybePrincipal
impl RefUnwindSafe for MaybePrincipal
impl Send for MaybePrincipal
impl Sync for MaybePrincipal
impl Unpin for MaybePrincipal
impl UnsafeUnpin for MaybePrincipal
impl UnwindSafe for MaybePrincipal
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<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