pub enum CredentialRegistry {
Store(Arc<StateStore>),
Config(HashMap<String, Arc<Vec<KnownCredential>>>),
}Expand description
Where credential records come from: the state store (hot-cached; the
DWARA_STATE_DB deployment) or config consumers hashed in-memory at
startup. Both paths unify behind one lookup API (a private
selector-keyed search shared by the API-key, Basic, and mTLS paths).
Variants§
Store(Arc<StateStore>)
Config(HashMap<String, Arc<Vec<KnownCredential>>>)
Implementations§
Source§impl CredentialRegistry
impl CredentialRegistry
Sourcepub fn from_config(gateway: &Gateway, pepper: Option<&[u8]>) -> Self
pub fn from_config(gateway: &Gateway, pepper: Option<&[u8]>) -> Self
Build the config-only registry: every consumer’s API-key credential
is hashed at startup (the config value is then dropped; the
registry holds only selectors and hashes) — with the PEPPERED
format when a pepper is configured (#124), the legacy sha256
format otherwise. ${...} secret references (DW-045) are
resolved HERE, at build time, and the RESOLVED bytes hashed; the
plaintext never outlives the call. mtls credentials are indexed
by their match value (subject CN or fingerprint). JWT credentials
are bindings consumed via the composite’s issuer index, not this
map.
Auto Trait Implementations§
impl Freeze for CredentialRegistry
impl RefUnwindSafe for CredentialRegistry
impl Send for CredentialRegistry
impl Sync for CredentialRegistry
impl Unpin for CredentialRegistry
impl UnwindSafe for CredentialRegistry
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
§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