struct SessionState {
phase: SessionPhase,
bearer: Option<String>,
expires_at: Option<Instant>,
key_store: KeyStore<KeySlotIds>,
organization_id: Option<OrganizationId>,
phase_tx: Sender<SessionPhase>,
}Fields§
§phase: SessionPhase§bearer: Option<String>The last issued bearer, kept through renewals and cleared only on terminal entry.
expires_at: Option<Instant>Monotonic expiry of bearer.
key_store: KeyStore<KeySlotIds>Shared with the client, so clearing it on terminal entry reaches core too.
organization_id: Option<OrganizationId>The organisation from the access token’s claim; None until the first authentication.
phase_tx: Sender<SessionPhase>Implementations§
Source§impl SessionState
impl SessionState
Sourcefn needs_renewal(&self) -> bool
fn needs_renewal(&self) -> bool
Whether the stored bearer is within or past the proactive renewal margin.
Sourcefn active_bearer(&self) -> Result<String, SessionError>
fn active_bearer(&self) -> Result<String, SessionError>
The stored bearer for a session the caller has just seen valid, still under the same guard.
Without a bearer this is the terminal error for the phase; any other phase is an invariant
breach (an Active session always has a bearer).
fn set_phase(&mut self, phase: SessionPhase)
fn apply_success( &mut self, success: AuthSuccess, token: &AccessToken, ) -> Result<(), CryptoModuleError>
Sourcefn enter_terminal(&mut self, lost: SessionLost)
fn enter_terminal(&mut self, lost: SessionLost)
Enter a terminal phase, dropping the bearer and the org key.
Auto Trait Implementations§
impl Freeze for SessionState
impl RefUnwindSafe for SessionState
impl Send for SessionState
impl Sync for SessionState
impl Unpin for SessionState
impl UnsafeUnpin for SessionState
impl UnwindSafe for SessionState
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