[][src]Struct tide::http::cookies::SignedJar

pub struct SignedJar<'a> { /* fields omitted */ }
This is supported on crate feature signed only.

A child cookie jar that authenticates its cookies.

A signed child jar signs all the cookies added to it and verifies cookies retrieved from it. Any cookies stored in a SignedJar are provided integrity and authenticity. In other words, clients cannot tamper with the contents of a cookie nor can they fabricate cookie values, but the data is visible in plaintext.

Implementations

impl<'a> SignedJar<'a>[src]

pub fn get(&self, name: &str) -> Option<Cookie<'static>>[src]

Returns a reference to the Cookie inside this jar with the name name and verifies the authenticity and integrity of the cookie's value, returning a Cookie with the authenticated value. If the cookie cannot be found, or the cookie fails to verify, None is returned.

Example

use cookie::{CookieJar, Cookie, Key};

let key = Key::generate();
let mut jar = CookieJar::new();
let mut signed_jar = jar.signed(&key);
assert!(signed_jar.get("name").is_none());

signed_jar.add(Cookie::new("name", "value"));
assert_eq!(signed_jar.get("name").unwrap().value(), "value");

pub fn add(&mut self, cookie: Cookie<'static>)[src]

Adds cookie to the parent jar. The cookie's value is signed assuring integrity and authenticity.

Example

use cookie::{CookieJar, Cookie, Key};

let key = Key::generate();
let mut jar = CookieJar::new();
jar.signed(&key).add(Cookie::new("name", "value"));

assert_ne!(jar.get("name").unwrap().value(), "value");
assert!(jar.get("name").unwrap().value().contains("value"));
assert_eq!(jar.signed(&key).get("name").unwrap().value(), "value");

pub fn add_original(&mut self, cookie: Cookie<'static>)[src]

Adds an "original" cookie to this jar. The cookie's value is signed assuring integrity and authenticity. Adding an original cookie does not affect the CookieJar::delta() computation. This method is intended to be used to seed the cookie jar with cookies received from a client's HTTP message.

For accurate delta computations, this method should not be called after calling remove.

Example

use cookie::{CookieJar, Cookie, Key};

let key = Key::generate();
let mut jar = CookieJar::new();
jar.signed(&key).add_original(Cookie::new("name", "value"));

assert_eq!(jar.iter().count(), 1);
assert_eq!(jar.delta().count(), 0);

pub fn remove(&mut self, cookie: Cookie<'static>)[src]

Removes cookie from the parent jar.

For correct removal, the passed in cookie must contain the same path and domain as the cookie that was initially set.

See CookieJar::remove() for more details.

Example

use cookie::{CookieJar, Cookie, Key};

let key = Key::generate();
let mut jar = CookieJar::new();
let mut signed_jar = jar.signed(&key);

signed_jar.add(Cookie::new("name", "value"));
assert!(signed_jar.get("name").is_some());

signed_jar.remove(Cookie::named("name"));
assert!(signed_jar.get("name").is_none());

Auto Trait Implementations

impl<'a> RefUnwindSafe for SignedJar<'a>[src]

impl<'a> Send for SignedJar<'a>[src]

impl<'a> Sync for SignedJar<'a>[src]

impl<'a> Unpin for SignedJar<'a>[src]

impl<'a> !UnwindSafe for SignedJar<'a>[src]

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> Same<T> for T

type Output = T

Should always be Self

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.

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