#[non_exhaustive]pub enum TenantStrategy {
Subdomain,
Header,
Parameter,
}Expand description
Strategy used to extract the active tenant ID from an incoming request.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Subdomain
Select a tenant from the request host subdomain (e.g. tenant.example.com).
The selection is accepted only when authenticated membership allows it.
Header
Select a tenant from a custom HTTP header. The header is an untrusted hint and is accepted only when authenticated membership allows it.
Parameter
Extract the tenant ID from query parameters.
§Security Warning
Using query parameters (?tenant_id=...) can cause tenant IDs to leak in:
- Server access logs (clear-text)
- Browser history
Refererheaders sent to third-party assets- CDN/proxy cache headers
For sensitive or regulated tenant IDs, prefer TenantStrategy::Header or TenantStrategy::Subdomain.
Every strategy still requires a trusted crate::security::TenantMembership
request extension from authentication middleware.
Trait Implementations§
Source§impl Clone for TenantStrategy
impl Clone for TenantStrategy
Source§fn clone(&self) -> TenantStrategy
fn clone(&self) -> TenantStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for TenantStrategy
Source§impl Debug for TenantStrategy
impl Debug for TenantStrategy
impl Eq for TenantStrategy
Source§impl PartialEq for TenantStrategy
impl PartialEq for TenantStrategy
impl StructuralPartialEq for TenantStrategy
Auto Trait Implementations§
impl Freeze for TenantStrategy
impl RefUnwindSafe for TenantStrategy
impl Send for TenantStrategy
impl Sync for TenantStrategy
impl Unpin for TenantStrategy
impl UnsafeUnpin for TenantStrategy
impl UnwindSafe for TenantStrategy
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> ⓘ
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