pub(super) struct LdapSession {
ldap: Ldap,
driver: JoinHandle<()>,
operation_timeout: Duration,
}Expand description
An LDAPS connection to a domain controller. Every request on it uses the operation timeout.
Fields§
§ldap: Ldap§driver: JoinHandle<()>§operation_timeout: DurationImplementations§
Source§impl LdapSession
impl LdapSession
Sourcepub(super) async fn open_and_locate(
creds: &Credentials<'_>,
account_identity: &str,
timeouts: Timeouts,
phase: Phase,
) -> Result<(Self, String), IntegrationError>
pub(super) async fn open_and_locate( creds: &Credentials<'_>, account_identity: &str, timeouts: Timeouts, phase: Phase, ) -> Result<(Self, String), IntegrationError>
Connects, binds as the delegated service account and resolves account_identity to a DN.
async fn connect( url: &str, ca_certificate: Option<&str>, timeouts: Timeouts, phase: Phase, ) -> Result<Self, IntegrationError>
Sourceasync fn find_account_dn(
&mut self,
base_dn: &str,
account_identity: &str,
phase: Phase,
) -> Result<String, IntegrationError>
async fn find_account_dn( &mut self, base_dn: &str, account_identity: &str, phase: Phase, ) -> Result<String, IntegrationError>
Exactly one user must match, since rotating the wrong account is worse than not rotating. Account state isn’t checked: a disabled account rotates, and then fails verification.
pub(super) async fn simple_bind( &mut self, dn: &str, password: &str, ) -> Result<(), LdapError>
Trait Implementations§
Source§impl Drop for LdapSession
impl Drop for LdapSession
Source§impl PasswordWriter for LdapSession
impl PasswordWriter for LdapSession
Source§fn replace_password<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
account_dn: &'life1 str,
encoded: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<LdapResult, LdapError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn replace_password<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
account_dn: &'life1 str,
encoded: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<LdapResult, LdapError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
A directory rejection comes back in the [
LdapResult]; Err means there was no answer.fn bind_as_account<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
account_dn: &'life1 str,
password: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), LdapError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Auto Trait Implementations§
impl Freeze for LdapSession
impl RefUnwindSafe for LdapSession
impl Send for LdapSession
impl Sync for LdapSession
impl Unpin for LdapSession
impl UnsafeUnpin for LdapSession
impl UnwindSafe for LdapSession
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T> ⓘ
unsafe fn consume_handle(handle: Handle) -> Arc<T> ⓘ
Consume a handle, getting back the initial
Arc<> Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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