use rocket::Request;
use verify::{AuthorizationHeader, VerifyAuthorizationHeader, GetKey};
use error::VerificationError;
impl<'r> VerifyAuthorizationHeader for Request<'r> {
fn verify_authorization_header<G: GetKey>(
&self,
key_getter: G,
) -> Result<(), VerificationError> {
let auth_header = self.headers().get_one("Authorization").ok_or(
VerificationError::HeaderNotPresent,
)?;
let auth_header = AuthorizationHeader::new(String::from(auth_header))?;
let headers: Vec<(String, String)> = self.headers()
.iter()
.map(|header| (header.name().into(), header.value().into()))
.collect();
auth_header.verify(
headers.as_ref(),
self.method().as_str(),
self.uri().path(),
self.uri().query(),
key_getter,
)
}
}