pub struct ChainedAuthProvider { /* private fields */ }Expand description
Authentication provider that tries multiple providers in order.
Implementations§
Source§impl ChainedAuthProvider
impl ChainedAuthProvider
Sourcepub fn new() -> ChainedAuthProvider
pub fn new() -> ChainedAuthProvider
Create a new chained auth provider.
Sourcepub fn with_provider(
self,
provider: Arc<dyn AuthProvider>,
) -> ChainedAuthProvider
pub fn with_provider( self, provider: Arc<dyn AuthProvider>, ) -> ChainedAuthProvider
Add a provider to the chain.
Trait Implementations§
Source§impl AuthProvider for ChainedAuthProvider
impl AuthProvider for ChainedAuthProvider
Source§fn authenticate<'life0, 'life1, 'async_trait>(
&'life0 self,
credentials: &'life1 Credentials,
) -> Pin<Box<dyn Future<Output = Result<AuthContext, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ChainedAuthProvider: 'async_trait,
fn authenticate<'life0, 'life1, 'async_trait>(
&'life0 self,
credentials: &'life1 Credentials,
) -> Pin<Box<dyn Future<Output = Result<AuthContext, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ChainedAuthProvider: 'async_trait,
Authenticate credentials and return an auth context.
Source§fn validate<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 AuthContext,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ChainedAuthProvider: 'async_trait,
fn validate<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 AuthContext,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ChainedAuthProvider: 'async_trait,
Validate an existing auth context (e.g., check if still valid).
Source§fn revoke<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 AuthContext,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ChainedAuthProvider: 'async_trait,
fn revoke<'life0, 'life1, 'async_trait>(
&'life0 self,
context: &'life1 AuthContext,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ChainedAuthProvider: 'async_trait,
Revoke authentication (e.g., invalidate a token).
Source§fn provider_name(&self) -> &str
fn provider_name(&self) -> &str
Get the provider name.
Source§impl Default for ChainedAuthProvider
impl Default for ChainedAuthProvider
Source§fn default() -> ChainedAuthProvider
fn default() -> ChainedAuthProvider
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ChainedAuthProvider
impl !RefUnwindSafe for ChainedAuthProvider
impl Send for ChainedAuthProvider
impl Sync for ChainedAuthProvider
impl Unpin for ChainedAuthProvider
impl !UnwindSafe for ChainedAuthProvider
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.