Struct Refresh

Source
pub struct Refresh { /* private fields */ }
Expand description

An ongoing refresh request.

This is a rather linear Mealy machine with four basic phases. It will pose some requests in the form of Output which should be satisfied with the next Input data. This will eventually produce a refreshed BearerToken or an Error. Note that the executing environment will need to use a Registrar and an Issuer to which some requests should be forwarded.

Issuer ../primitives/issuer/trait.Issuer.html Registrar ../primitives/registrar/trait.Registrar.html

A rough sketch of the operational phases:

  1. Ensure the request is valid based on the basic requirements (includes required parameters)
  2. Check any included authentication
  3. Try to recover the refresh token 3.1. Check that it belongs to the authenticated client 3.2. If there was no authentication, assert token does not require authentication 3.3. Check the intrinsic validity (timestamp, scope)
  4. Query the backend for a renewed (bearer) token

Implementations§

Source§

impl Refresh

Source

pub fn new(request: &dyn Request) -> Self

Construct a new refresh state machine.

This borrows the request for the duration of the request execution to ensure consistency of all client input.

Source

pub fn advance<'req>(&mut self, input: Input<'req>) -> Output<'_>

Advance the state machine.

The provided Input needs to fulfill the previous Output request. See their documentation for more information.

Trait Implementations§

Source§

impl Debug for Refresh

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> ErasedDestructor for T
where T: 'static,