31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/distelli/clientframework.rb', line 31
def get_string_to_sign(request_info)
string_to_sign = Array.new
string_to_sign.push(request_info.http_method)
if request_info.(ServiceConstants::CONTENT_MD5_HEADER)
string_to_sign.push(request_info.[ServiceConstants::CONTENT_MD5_HEADER])
else
string_to_sign.push("")
end
if request_info.(ServiceConstants::CONTENT_TYPE_HEADER)
string_to_sign.push(request_info.[ServiceConstants::CONTENT_TYPE_HEADER])
else
string_to_sign.push("")
end
if request_info.(ServiceConstants::DATE_HEADER)
string_to_sign.push(request_info.[ServiceConstants::DATE_HEADER])
else
string_to_sign.push("")
end
= Array.new
request_info..each do ||
if [0].to_s().downcase().start_with?("x-dstli")
.push([0])
end
end
.sort!()
.each do ||
string_to_sign.push(.downcase()+":"+request_info.[.to_s])
end
if request_info.resource == nil
string_to_sign.push("")
else
string_to_sign.push(request_info.resource)
end
sorted_params = Array.new
if request_info.query_params != nil
request_info.query_params.each_pair do |param, values|
if values == nil or values.length() == 0
next
end
values.sort!()
query_param_list = Array.new
values.each do |value|
query_param_list.push(value.to_s)
end
sorted_params.push(param+"="+query_param_list.join(','))
end
end
sorted_params.sort!()
string_to_sign.push(sorted_params.join('&'))
return string_to_sign.join("\n")
end
|