Unverified Commit eff74374 authored by John DiSanti's avatar John DiSanti Committed by GitHub
Browse files

Fix the `HttpSigner` trait args (#2558)

This trait should have been taking a `PropertyBag` that originates from
`HttpAuthOption` rather than the `ConfigBag`.
parent 1a7a495d
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -11,12 +11,12 @@ pub mod sigv4 {
        SignableRequest, SignatureLocation, SigningParams, SigningSettings,
        UriPathNormalizationMode,
    };
    use aws_smithy_http::property_bag::PropertyBag;
    use aws_smithy_runtime_api::client::identity::Identity;
    use aws_smithy_runtime_api::client::orchestrator::{
        BoxError, HttpAuthScheme, HttpRequest, HttpRequestSigner, IdentityResolver,
        IdentityResolvers,
    };
    use aws_smithy_runtime_api::config_bag::ConfigBag;
    use aws_types::region::SigningRegion;
    use aws_types::SigningService;
    use std::time::{Duration, SystemTime};
@@ -197,9 +197,9 @@ pub mod sigv4 {
            &self,
            request: &mut HttpRequest,
            identity: &Identity,
            cfg: &ConfigBag,
            signing_properties: &PropertyBag,
        ) -> Result<(), BoxError> {
            let operation_config = cfg
            let operation_config = signing_properties
                .get::<SigV4OperationSigningConfig>()
                .ok_or("missing operation signing config for SigV4")?;

+7 −11
Original line number Diff line number Diff line
@@ -119,16 +119,6 @@ private class AuthOperationRuntimePluginCustomization(private val codegenContext
            is OperationRuntimePluginSection.AdditionalConfig -> {
                val authSchemes = serviceIndex.getEffectiveAuthSchemes(codegenContext.serviceShape, section.operationShape)
                if (authSchemes.containsKey(SigV4Trait.ID)) {
                    rustTemplate(
                        """
                        let auth_option_resolver = #{AuthOptionListResolver}::new(
                            vec![#{HttpAuthOption}::new(#{SIGV4_SCHEME_ID}, std::sync::Arc::new(#{PropertyBag}::new()))]
                        );
                        ${section.configBagName}.set_auth_option_resolver(auth_option_resolver);
                        """,
                        *codegenScope,
                    )

                    val unsignedPayload = section.operationShape.hasTrait<UnsignedPayloadTrait>()
                    val doubleUriEncode = unsignedPayload || !disableDoubleEncode(codegenContext.serviceShape)
                    val contentSha256Header = needsAmzSha256(codegenContext.serviceShape)
@@ -144,11 +134,17 @@ private class AuthOperationRuntimePluginCustomization(private val codegenContext
                        signing_options.normalize_uri_path = $normalizeUrlPath;
                        signing_options.signing_optional = $signingOptional;
                        signing_options.payload_override = #{payload_override};
                        ${section.configBagName}.put(#{SigV4OperationSigningConfig} {

                        let mut sigv4_properties = #{PropertyBag}::new();
                        sigv4_properties.insert(#{SigV4OperationSigningConfig} {
                            region: signing_region,
                            service: signing_service,
                            signing_options,
                        });
                        let auth_option_resolver = #{AuthOptionListResolver}::new(
                            vec![#{HttpAuthOption}::new(#{SIGV4_SCHEME_ID}, std::sync::Arc::new(sigv4_properties))]
                        );
                        ${section.configBagName}.set_auth_option_resolver(auth_option_resolver);
                        """,
                        *codegenScope,
                        "payload_override" to writable {
+1 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ pub trait HttpRequestSigner: Send + Sync + Debug {
        &self,
        request: &mut HttpRequest,
        identity: &Identity,
        cfg: &ConfigBag,
        signing_properties: &PropertyBag,
    ) -> Result<(), BoxError>;
}

+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ pub(super) async fn orchestrate_auth(
                .map_err(construction_failure)?;
            return dispatch_phase.include_mut(|ctx| {
                let request = ctx.request_mut()?;
                request_signer.sign_request(request, &identity, cfg)?;
                request_signer.sign_request(request, &identity, scheme_properties)?;
                Result::<_, BoxError>::Ok(())
            });
        }