pub struct ClientCertificate { /* private fields */ }Expand description
The VERIFIED client certificate of a connection, as the authenticator
consumes it (#124, DW-035). Built by the TLS frontend from the
certificate rustls already verified against the listener’s
client_ca_file; the match VALUES (subject CN, fingerprint) double
as credential selectors, so Debug redacts them (the
selector-redaction precedent). DW-035 extends it with the issuer CN,
not-after timestamp, and colon-separated fingerprint needed for the
X-Client-Cert-* forwarding headers and the gateway-level mTLS
consumer mapping.
Implementations§
Source§impl ClientCertificate
impl ClientCertificate
Sourcepub fn from_cert(cert: &CertificateDer<'_>) -> Self
pub fn from_cert(cert: &CertificateDer<'_>) -> Self
Extract the match values and forwarding metadata of a verified
leaf certificate. Never fails: an undecodable subject yields
subject_cn: None and the credential lookup falls back to the
fingerprint selector alone.
Sourcepub fn fingerprint_colon(&self) -> &str
pub fn fingerprint_colon(&self) -> &str
The colon-separated SHA-256 fingerprint (DW-035): the
operator-facing format used in X-Client-Cert-Fingerprint and
matched against mtls_consumer_mapping.consumers[].fingerprint.
Sourcepub fn subject_cn(&self) -> Option<&str>
pub fn subject_cn(&self) -> Option<&str>
The subject CommonName (for X-Client-Cert-Subject-CN, DW-035).
Trait Implementations§
Source§impl Clone for ClientCertificate
impl Clone for ClientCertificate
Source§fn clone(&self) -> ClientCertificate
fn clone(&self) -> ClientCertificate
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ClientCertificate
impl RefUnwindSafe for ClientCertificate
impl Send for ClientCertificate
impl Sync for ClientCertificate
impl Unpin for ClientCertificate
impl UnwindSafe for ClientCertificate
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§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>
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