Struct Validation

Source
pub struct Validation {
    pub leeway: u64,
    pub validate_exp: bool,
    pub validate_nbf: bool,
    pub aud: Option<HashSet<String>>,
    pub iss: Option<String>,
    pub sub: Option<String>,
    pub algorithms: Vec<Algorithm>,
}
Expand description

Contains the various validations that are applied after decoding a JWT.

All time validation happen on UTC timestamps as seconds.

use jsonwebtoken_rustcrypto::Validation;

// Default value
let validation = Validation::default();

// Changing one parameter
let mut validation = Validation {leeway: 60, ..Default::default()};

// Setting audience
let mut validation = Validation::default();
validation.set_audience(&["Me"]); // a single string
validation.set_audience(&["Me", "You"]); // array of strings

Fields§

§leeway: u64

Add some leeway (in seconds) to the exp, iat and nbf validation to account for clock skew.

Defaults to 0.

§validate_exp: bool

Whether to validate the exp field.

It will return an error if the time in the exp field is past.

Defaults to true.

§validate_nbf: bool

Whether to validate the nbf field.

It will return an error if the current timestamp is before the time in the nbf field.

Defaults to false.

§aud: Option<HashSet<String>>

If it contains a value, the validation will check that the aud field is a member of the audience provided and will error otherwise.

Defaults to None.

§iss: Option<String>

If it contains a value, the validation will check that the iss field is the same as the one provided and will error otherwise.

Defaults to None.

§sub: Option<String>

If it contains a value, the validation will check that the sub field is the same as the one provided and will error otherwise.

Defaults to None.

§algorithms: Vec<Algorithm>

If it contains a value, the validation will check that the alg of the header is contained in the ones provided and will error otherwise.

Defaults to empty.

Implementations§

Source§

impl Validation

Source

pub fn new(alg: Algorithm) -> Validation

Create a default validation setup allowing the given alg

Source

pub fn set_audience<T: ToString>(&mut self, items: &[T])

aud is a collection of one or more acceptable audience members

Trait Implementations§

Source§

impl Clone for Validation

Source§

fn clone(&self) -> Validation

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Validation

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Validation

Source§

fn default() -> Validation

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Validation

Source§

fn eq(&self, other: &Validation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

const fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Validation

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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