[−][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
|
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 |