pub struct SignedJar<'a> { /* private fields */ }
signed
only.Expand description
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
sourceimpl<'a> SignedJar<'a>
impl<'a> SignedJar<'a>
sourcepub fn get(&self, name: &str) -> Option<Cookie<'static>>
pub fn get(&self, name: &str) -> Option<Cookie<'static>>
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");
sourcepub fn add(&mut self, cookie: Cookie<'static>)
pub fn add(&mut self, cookie: Cookie<'static>)
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");
sourcepub fn add_original(&mut self, cookie: Cookie<'static>)
pub fn add_original(&mut self, cookie: Cookie<'static>)
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);
sourcepub fn remove(&mut self, cookie: Cookie<'static>)
pub fn remove(&mut self, cookie: Cookie<'static>)
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>
impl<'a> Send for SignedJar<'a>
impl<'a> Sync for SignedJar<'a>
impl<'a> Unpin for SignedJar<'a>
impl<'a> !UnwindSafe for SignedJar<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more