[]Struct roa::jwt::Validation

pub struct Validation {
    pub leeway: i64,
    pub validate_exp: bool,
    pub validate_nbf: bool,
    pub aud: Option<Value>,
    pub iss: Option<String>,
    pub sub: Option<String>,
    pub algorithms: Vec<Algorithm>,
}

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

All time validation happen on UTC timestamps.

use jsonwebtoken::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"); // string
validation.set_audience(&["Me", "You"]); // array of strings

Fields

leeway: i64

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<Value>

If it contains a value, the validation will check that the aud field is the same as the one provided and will error otherwise. Since aud can be either a String or a Vec in the JWT spec, you will need to use the set_audience method to set it.

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 vec![Algorithm::HS256].

Methods

impl Validation

pub fn new(alg: Algorithm) -> Validation

Create a default validation setup allowing the given alg

pub fn set_audience<T>(&mut self, audience: &T) where
    T: Serialize

Since aud can be either a String or an array of String in the JWT spec, this method will take care of serializing the value.

Trait Implementations

impl Clone for Validation

impl Debug for Validation

impl Default for Validation

impl PartialEq<Validation> for Validation

impl StructuralPartialEq for Validation

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> State for T where
    T: 'static + Send + Sync
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.