Example #1
0
        public void CopyHeadersFromCrtRequestTest()
        {
            var crtRequest = new Aws.Crt.Http.HttpRequest
            {
                Headers = new[]
                {
                    new Aws.Crt.Http.HttpHeader("a", "a"),
                    new Aws.Crt.Http.HttpHeader("b", "b")
                }
            };

            var mock = new Mock <IRequest>();

            mock.SetupAllProperties();
            mock.SetupGet(x => x.Headers).Returns(new Dictionary <string, string>
            {
                { "c", "c" },   // this is only on the SDK request so we expect it to be replaced by "a" and "b" from CRT
            });
            var sdkRequest = mock.Object;

            CrtHttpRequestConverter.CopyHeadersFromCrtRequest(sdkRequest, crtRequest);

            // Verify that we've replaced the SDK request's headers with all of the CRT request's headers
            Assert.Equal(2, sdkRequest.Headers.Count);
            Assert.True(sdkRequest.Headers.ContainsKey("a"));
            Assert.True(sdkRequest.Headers.ContainsKey("b"));
            Assert.Equal("a", sdkRequest.Headers["a"]);
            Assert.Equal("b", sdkRequest.Headers["b"]);
        }
Example #2
0
        public void ExtractSignedHeadersTest()
        {
            var crtRequest = new Aws.Crt.Http.HttpRequest();

            crtRequest.Headers = new Aws.Crt.Http.HttpHeader[]
            {
                new Aws.Crt.Http.HttpHeader("a", "a"),
                new Aws.Crt.Http.HttpHeader("Authorization", "AWS4-ECDSA-P256-SHA256 Credential=accesskey/20210101/s3/aws4_request, " +
                                            "SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-region-set;x-amz-security-token, Signature=signature"),
                new Aws.Crt.Http.HttpHeader("b", "b"),
            };

            var signedHeaders = CrtHttpRequestConverter.ExtractSignedHeaders(crtRequest);

            // Verify that we can extract the signed headers out of the CRT's 'Authorization' header,
            // since we may use them directly later in the SDK
            Assert.Equal("host;x-amz-content-sha256;x-amz-date;x-amz-region-set;x-amz-security-token", signedHeaders);
        }