@@ -145,14 +145,12 @@ long_term_credentials(AccessKeyId, SecretAccessKey) ->
145145-spec credentials_from_plist (list ({expiration | token | access_key_id | secret_access_key ,
146146 iodata () | undefined })) -> credentials ().
147147credentials_from_plist (Plist ) ->
148- lists :foldl (fun ({Name , N }, Acc ) ->
149- setelement (N , Acc , erliam_util :getkey (Name , Plist ))
150- end ,
151- # credentials {},
152- [{expiration , # credentials .expiration },
153- {token , # credentials .security_token },
154- {access_key_id , # credentials .access_key_id },
155- {secret_access_key , # credentials .secret_access_key }]).
148+ # credentials {
149+ expiration = erliam_util :getkey (expiration , Plist ),
150+ security_token = erliam_util :getkey (token , Plist ),
151+ access_key_id = erliam_util :getkey (access_key_id , Plist ),
152+ secret_access_key = erliam_util :getkey (secret_access_key , Plist )
153+ }.
156154
157155
158156% %%% INTERNAL FUNCTIONS
@@ -259,75 +257,104 @@ basic_headers_test() ->
259257 " 20140629T022822Z" , " Kinesis_20131202.ListStreams" ,
260258 " POST" , " /" , [], #{},
261259 " something" ]),
262- Expected = flattened ([{" authorization" ,
263- [" AWS4-HMAC-SHA256 Credential=accesskey/20140629/us-east-1/kinesis/aws4_request" ,
264- " ,SignedHeaders=host;x-amz-date;x-amz-security-token;x-amz-target" ,
265- " ,Signature=847fee48568298911772356fe332443bf2679c48fd42695a84aaa0d0e7f28c66" ]},
266- {" x-amz-content-sha256" ,
267- " 3fc9b689459d738f8c88a3a48aa9e33542016b7a4052e001aaa536fca74813cb" },
268- {" host" ," kinesis.us-east-1.amazonaws.com" },
269- {" x-amz-date" ," 20140629T022822Z" },
270- {" x-amz-security-token" ," securitytoken" },
271- {" x-amz-target" ," Kinesis_20131202.ListStreams" }]),
260+ Expected = flattened ([
261+ {" authorization" , [
262+ " AWS4-HMAC-SHA256 Credential=accesskey/20140629/us-east-1/kinesis/aws4_request" ,
263+ " ,SignedHeaders=host;x-amz-date;x-amz-security-token;x-amz-target" ,
264+ " ,Signature=847fee48568298911772356fe332443bf2679c48fd42695a84aaa0d0e7f28c66"
265+ ]},
266+ {" x-amz-content-sha256" ,
267+ " 3fc9b689459d738f8c88a3a48aa9e33542016b7a4052e001aaa536fca74813cb" },
268+ {" host" ," kinesis.us-east-1.amazonaws.com" },
269+ {" x-amz-date" ," 20140629T022822Z" },
270+ {" x-amz-security-token" ," securitytoken" },
271+ {" x-amz-target" ," Kinesis_20131202.ListStreams" }
272+ ]),
272273 ? assertEqual (Expected , Actual ).
273274
274275aws4_example1_test () ->
275276 % % get-vanilla-query-order-key-case from aws4 test suite
276- Actual = flattened_headers ([# credentials {secret_access_key = " wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY" ,
277- access_key_id = " AKIDEXAMPLE" },
278- #{aws_date => " 20150830T123600Z" ,
279- service => " service" ,
280- region => " us-east-1" ,
281- host => " example.amazonaws.com" ,
282- query_params => #{" Param2" => " value2" ,
283- " Param1" => " value1" }}]),
284- Expected = flattened ([{" authorization" ,
285- [" AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request" ,
286- " ,SignedHeaders=host;x-amz-date" ,
287- " ,Signature=b97d918cfa904a5beff61c982a1b6f458b799221646efd99d3219ec94cdf2500" ]},
288- {" x-amz-content-sha256" ,
289- " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
290- {" host" , " example.amazonaws.com" },
291- {" x-amz-date" , " 20150830T123600Z" }]),
277+ Actual = flattened_headers ([
278+ # credentials {
279+ secret_access_key = " wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY" ,
280+ access_key_id = " AKIDEXAMPLE"
281+ },
282+ #{
283+ aws_date => " 20150830T123600Z" ,
284+ service => " service" ,
285+ region => " us-east-1" ,
286+ host => " example.amazonaws.com" ,
287+ query_params => #{" Param2" => " value2" , " Param1" => " value1" }
288+ }
289+ ]),
290+ Expected = flattened ([
291+ {" authorization" , [
292+ " AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request" ,
293+ " ,SignedHeaders=host;x-amz-date" ,
294+ " ,Signature=b97d918cfa904a5beff61c982a1b6f458b799221646efd99d3219ec94cdf2500"
295+ ]},
296+ {" x-amz-content-sha256" ,
297+ " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
298+ {" host" , " example.amazonaws.com" },
299+ {" x-amz-date" , " 20150830T123600Z" }
300+ ]),
292301 ? assertEqual (Expected , Actual ).
293302
294303aws4_example2_test () ->
295304 % % post-vanilla-query from aws4 test suite
296- Actual = flattened_headers ([# credentials {secret_access_key = " wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY" ,
297- access_key_id = " AKIDEXAMPLE" },
298- #{aws_date => " 20150830T123600Z" ,
299- service => " service" ,
300- region => " us-east-1" ,
301- host => " example.amazonaws.com" ,
302- method => " POST" ,
303- query_params => #{" Param1" => " value1" }}]),
304- Expected = flattened ([{" authorization" ,
305- [" AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request" ,
306- " ,SignedHeaders=host;x-amz-date" ,
307- " ,Signature=28038455d6de14eafc1f9222cf5aa6f1a96197d7deb8263271d420d138af7f11" ]},
308- {" x-amz-content-sha256" ,
309- " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
310- {" host" , " example.amazonaws.com" },
311- {" x-amz-date" , " 20150830T123600Z" }]),
305+ Actual = flattened_headers ([
306+ # credentials {
307+ secret_access_key = " wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY" ,
308+ access_key_id = " AKIDEXAMPLE"
309+ },
310+ #{
311+ aws_date => " 20150830T123600Z" ,
312+ service => " service" ,
313+ region => " us-east-1" ,
314+ host => " example.amazonaws.com" ,
315+ method => " POST" ,
316+ query_params => #{" Param1" => " value1" }
317+ }
318+ ]),
319+ Expected = flattened ([
320+ {" authorization" , [
321+ " AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request" ,
322+ " ,SignedHeaders=host;x-amz-date" ,
323+ " ,Signature=28038455d6de14eafc1f9222cf5aa6f1a96197d7deb8263271d420d138af7f11"
324+ ]},
325+ {" x-amz-content-sha256" ,
326+ " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
327+ {" host" , " example.amazonaws.com" },
328+ {" x-amz-date" , " 20150830T123600Z" }
329+ ]),
312330 ? assertEqual (Expected , Actual ).
313331
314332aws4_example3_test () ->
315333 % % get-unreserved from aws4 test suite
316- Actual = flattened_headers ([# credentials {secret_access_key = " wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY" ,
317- access_key_id = " AKIDEXAMPLE" },
318- #{aws_date => " 20150830T123600Z" ,
319- service => " service" ,
320- region => " us-east-1" ,
321- host => " example.amazonaws.com" ,
322- path => " /-._~0 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" }]),
323- Expected = flattened ([{" authorization" ,
324- [" AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request" ,
325- " ,SignedHeaders=host;x-amz-date" ,
326- " ,Signature=07ef7494c76fa4850883e2b006601f940f8a34d404d0cfa977f52a65bbf5f24f" ]},
327- {" x-amz-content-sha256" ,
328- " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
329- {" host" , " example.amazonaws.com" },
330- {" x-amz-date" , " 20150830T123600Z" }]),
334+ Actual = flattened_headers ([
335+ # credentials {
336+ secret_access_key = " wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY" ,
337+ access_key_id = " AKIDEXAMPLE"
338+ },
339+ #{
340+ aws_date => " 20150830T123600Z" ,
341+ service => " service" ,
342+ region => " us-east-1" ,
343+ host => " example.amazonaws.com" ,
344+ path => " /-._~0 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
345+ }
346+ ]),
347+ Expected = flattened ([
348+ {" authorization" , [
349+ " AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request" ,
350+ " ,SignedHeaders=host;x-amz-date" ,
351+ " ,Signature=07ef7494c76fa4850883e2b006601f940f8a34d404d0cfa977f52a65bbf5f24f"
352+ ]},
353+ {" x-amz-content-sha256" ,
354+ " e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
355+ {" host" , " example.amazonaws.com" },
356+ {" x-amz-date" , " 20150830T123600Z" }
357+ ]),
331358 ? assertEqual (Expected , Actual ).
332359
333360
0 commit comments