File tree Expand file tree Collapse file tree 2 files changed +25
-2
lines changed
packages/s3-request-presigner/src Expand file tree Collapse file tree 2 files changed +25
-2
lines changed Original file line number Diff line number Diff line change @@ -77,4 +77,23 @@ describe("s3 presigner", () => {
77
77
} ) ;
78
78
expect ( minimalRequest ) . toMatchObject ( originalRequest ) ;
79
79
} ) ;
80
+
81
+ it ( "should not sign content-type header" , async ( ) => {
82
+ const signer = new S3RequestPresigner ( s3ResolvedConfig ) ;
83
+ const requestWithContentTypeHeader = {
84
+ ...minimalRequest ,
85
+ headers : {
86
+ ...minimalRequest . headers ,
87
+ "Content-Type" : "application/octet-stream"
88
+ }
89
+ } ;
90
+ const signed = await signer . presignRequest (
91
+ requestWithContentTypeHeader ,
92
+ expiration ,
93
+ presigningOptions
94
+ ) ;
95
+ expect ( signed . query ) . toMatchObject ( {
96
+ [ SIGNED_HEADERS_QUERY_PARAM ] : HOST_HEADER
97
+ } ) ;
98
+ } ) ;
80
99
} ) ;
Original file line number Diff line number Diff line change @@ -39,9 +39,13 @@ export class S3RequestPresigner implements RequestPresigner {
39
39
public async presignRequest (
40
40
requestToSign : IHttpRequest ,
41
41
expiration : DateInput ,
42
- options ? : RequestSigningArguments
42
+ { unsignableHeaders = new Set ( ) , ... options } : RequestSigningArguments = { }
43
43
) : Promise < IHttpRequest > {
44
+ unsignableHeaders . add ( "content-type" ) ;
44
45
requestToSign . headers [ SHA256_HEADER ] = UNSIGNED_PAYLOAD ;
45
- return this . signer . presignRequest ( requestToSign , expiration , options ) ;
46
+ return this . signer . presignRequest ( requestToSign , expiration , {
47
+ unsignableHeaders,
48
+ ...options
49
+ } ) ;
46
50
}
47
51
}
You can’t perform that action at this time.
0 commit comments