pub struct IdentifierContext<'a> {
pub client_ip: Option<IpAddr>,
pub account_id: &'a str,
pub stage: IdentifierStage,
pub identifiers: &'a [Identifier],
pub eab: Option<EabIdentity>,
}Expand description
What a Check knows about the names a client wants certified.
Carries the account as well as the client address so a policy can bind names to either — for example “this network may only request names under its own subdomain”.
Fields§
§client_ip: Option<IpAddr>The client address, as resolved by the middleware.
account_id: &'a strId of the account making the request (already authenticated by the JWS extractor and checked to own the order).
stage: IdentifierStage§identifiers: &'a [Identifier]The requested names. At IdentifierStage::Csr these are projected
from the CSR, so typ may be ip, email, uri, other or cn as
well as dns.
eab: Option<EabIdentity>The external account binding this account registered under.
Resolved by the caller only when the policy contains an eab check
(FilterPolicy::needs_eab), so a policy without one costs no lookup;
None therefore means either “no such check is configured” or “this
account used no EAB”, and only eab::EabList is ever in a position
to tell the two apart — it is the sole reader.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for IdentifierContext<'a>
impl<'a> RefUnwindSafe for IdentifierContext<'a>
impl<'a> Send for IdentifierContext<'a>
impl<'a> Sync for IdentifierContext<'a>
impl<'a> Unpin for IdentifierContext<'a>
impl<'a> UnsafeUnpin for IdentifierContext<'a>
impl<'a> UnwindSafe for IdentifierContext<'a>
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
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> ⓘ
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