[][src]Crate mauth_client

mauth-client

This crate allows users of the Hyper crate for making HTTP requests to sign those requests with the MAuth protocol, and verify the responses. Usage example:

Note: This crate and Rust support within Medidata is considered experimental. Do not release any code to Production or deploy in a Client-accessible environment without getting approval for the full stack used through the Architecture and Security groups.

let mauth_info = MAuthInfo::from_default_file().unwrap();
let https = HttpsConnector::new();
let client = Client::builder().build::<_, hyper::Body>(https);
let uri: hyper::Uri = "https://www.example.com/".parse().unwrap();
let (body, body_digest) = MAuthInfo::build_body_with_digest("".to_string());
let mut req = Request::new(body);
*req.method_mut() = Method::GET;
*req.uri_mut() = uri.clone();
mauth_info.sign_request(&mut req, &body_digest);
match client.request(req).await {
    Err(err) => println!("Got error {}", err),
    Ok(mut response) => match mauth_info.validate_response(&mut response).await {
        Ok(resp_body) => println!(
            "Got validated response with status {} and body {}",
            &response.status().as_str(),
            &String::from_utf8(resp_body).unwrap()
        ),
        Err(err) => println!("Error validating response: {:?}", err),
    }
}

Structs

BodyDigest

This struct holds the digest information required to perform the signing operation. It is a custom struct to enforce the requirement that the build_body_with_digest function's output be passed to the signing methods.

MAuthInfo

This is the primary struct of this class. It contains all of the information required to sign requests using the MAuth protocol and verify the responses.

Enums

ConfigReadError

All of the possible errors that can take place when attempting to read a config file. Errors are specific to the libraries that created them, and include the details from those libraries.

MAuthValidationError

All of the possible errors that can take place when attempting to verify a response signature