Module http_request

Source
Available on crate feature sign-http only.
Expand description

Utilities to sign HTTP requests.

§Example: Signing an HTTP request

Note: This requires http0-compat to be enabled.

use aws_smithy_runtime_api::client::identity::Identity;
#[cfg(feature = "http1")]
fn test() -> Result<(), aws_sigv4::http_request::SigningError> {
use aws_sigv4::http_request::{sign, SigningSettings, SigningParams, SignableRequest};
use aws_sigv4::sign::v4;
use http0;
use std::time::SystemTime;

// Set up information and settings for the signing
// You can obtain credentials from `SdkConfig`.
let identity = Credentials::new(
    "AKIDEXAMPLE",
    "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",
    None,
    None,
    "hardcoded-credentials"
).into();
let signing_settings = SigningSettings::default();
let signing_params = v4::SigningParams::builder()
    .identity(&identity)
    .region("us-east-1")
    .name("exampleservice")
    .time(SystemTime::now())
    .settings(signing_settings)
    .build()
    .unwrap()
    .into();
// Convert the HTTP request into a signable request
let signable_request = SignableRequest::new(
    "GET",
    "https://some-endpoint.some-region.amazonaws.com",
    std::iter::empty(),
    SignableBody::Bytes(&[])
).expect("signable request");

let mut my_req = http::Request::new("...");
// Sign and then apply the signature to the request
let (signing_instructions, _signature) = sign(signable_request, &signing_params)?.into_parts();
signing_instructions.apply_to_request_http1x(&mut my_req);

Structs§

SignableRequest
Represents all of the information necessary to sign an HTTP request.
SigningError
Error signing request
SigningInstructions
Instructions for applying a signature to an HTTP request.
SigningSettings
HTTP-specific signing settings

Enums§

PayloadChecksumKind
HTTP payload checksum type
PercentEncodingMode
Config value to specify how to encode the request URL when signing.
SessionTokenMode
Config value to specify whether X-Amz-Security-Token should be part of the canonical request. http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html#temporary-security-credentials
SignableBody
A signable HTTP request body
SignatureLocation
Where to place signing values in the HTTP request
SigningParams
Parameters for signing an HTTP request.
UriPathNormalizationMode
Config value to specify whether the canonical request’s URI path should be normalized. https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html

Functions§

sign
Produces a signature for the given request and returns instructions that can be used to apply that signature to an HTTP request.