Struct ClientCredentials

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

Client credentials token issuing process

This state machine will go through four phases. On creation, the request will be validated and parameters for the first step will be extracted from it. It will pose some requests in the form of Output which should be satisfied with the next Input data. This will eventually produce a BearerToken or an Error. Note that the executing environment will need to use a Registrar, an optional Extension and an Issuer to which some requests should be forwarded.

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

A rough sketch of the operational phases:

  1. Ensure the request is valid based on the basic requirements (includes required parameters)
  2. Try to produce a new token 2.1. Authenticate the client 2.2. Construct a grant based on the request 2.3. Check the intrinsic validity (scope)
  3. Query the backend for a new (bearer) token

Implementations§

Source§

impl ClientCredentials

Source

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

Create the state machine. validating the request in the process

Source

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

Go to next state

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,